電子書籍の厳選無料作品が豊富!

for loop文の中で繰り返してる最中に
A~Iまでダブらないように
1~9までの数字をいれて

loopまでいけば次にforからくだっていくときは
また別の組み合わせでくだっていき

最終的にloopの回数を9!通りにしたいんですが
どうやってコーディングするのがスマートですか?

A 回答 (4件)

#2>vb2005だと動かないので改良しないといけないですね。


'vb2005コンソールプログラムとしてコンパイル&実行出来るように書き直してみましたが、
'正直改良というほどの修正じゃないですけど・・
Imports System
Class Sample
Shared Sub Main()
Dim A%, B%, C%, D%, E%, F%, G%, H%, I%
Dim I1%, I2%, I3%, I4%, I5%, I6%, I7%, I8%, I9%
Dim List(9) As String
Dim choice As String
Dim NUMLIST As String
NUMLIST = "123456789"

For I1 = 1 To 9
List(1) = NUMLIST
choice = Mid(List(1), I1, 1)
A = Val(choice)
List(1) = Replace(List(1), choice, "")
For I2 = 1 To 8
List(2) = List(1)
choice = Mid(List(2), I2, 1)
B = Val(choice)
List(2) = Replace(List(2), choice, "")
For I3 = 1 To 7
List(3) = List(2)
choice = Mid(List(3), I3, 1)
C = Val(choice)
List(3) = Replace(List(3), choice, "")
For I4 = 1 To 6
List(4) = List(3)
choice = Mid(List(4), I4, 1)
D = Val(choice)
List(4) = Replace(List(4), choice, "")
For I5 = 1 To 5
List(5) = List(4)
choice = Mid(List(5), I5, 1)
E = Val(choice)
List(5) = Replace(List(5), choice, "")
For I6 = 1 To 4
List(6) = List(5)
choice = Mid(List(6), I6, 1)
F = Val(choice)
List(6) = Replace(List(6), choice, "")
For I7 = 1 To 3
List(7) = List(6)
choice = Mid(List(7), I7, 1)
G = Val(choice)
List(7) = Replace(List(7), choice, "")
For I8 = 1 To 2
List(8) = List(7)
choice = Mid(List(8), I8, 1)
H = Val(choice)
List(8) = Replace(List(8), choice, "")
For I9 = 1 To 1
List(9) = List(8)
choice = Mid(List(9), I9, 1)
I = Val(choice)
Console.WriteLine("{0}{1}{2}{3}{4}{5}{6}{7}{8}", A, B, C, D, E, F, G, H, I)
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub
End Class
    • good
    • 0
この回答へのお礼

めっちゃうれしい。本当感激♪
ありがとうございます。



Dim A%, B%, C%, D%, E%, F%, G%, H%, I%

から

Next

までを

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click



End Sub


この間にかいて
Imports Systemを一番上に書いて
ためしてみたのですが▲を押しても
画面が白くってフリーズするだけでイミディエイト・ウィンドウに文字がでないんですよね・・・・。
なぜでしょうね・・・・。

そんなむずかしい処理をしてるわけでもないと思うんですけどね。

お礼日時:2006/05/18 04:03

>なぜでしょうね・・・・。


えーっとですね。
#3のプログラムを丸ごとメモ帳でも何でもコピペして適当な名前
例えばlist9.vb とか言う名前で適当な場所に保存してください。
Visual Studio コマンドプロンプト
か(パスが通っていれば)単なるコマンドプロンプトを立ち上げて、
保存した場所に、
cd /d 保存したフォルダ
で移動するか、コマンドプロンプトが立ち上がっているカレントフォルダに先程のファイルをコピー(移動)して下さい。
vbc list9.vb
でコンパイルして
list9
で実行してみて下さい。
    • good
    • 0
この回答へのお礼

できました!!!
本当ありがとうございます!!!

助かりましたーーー。

お礼日時:2006/05/20 07:14

'スマートかどうかはわからんけど、作ってみました。


'for ループより再帰を使うとスマートになるかも・・
Public Sub sample()
Dim A%, B%, C%, D%, E%, F%, G%, H%, I%
Dim I1%, I2%, I3%, I4%, I5%, I6%, I7%, I8%, I9%
Dim List(9) As String
Dim choice As String
Dim NUMLIST As String
NUMLIST = "123456789"

For I1 = 1 To 9
List(1) = NUMLIST
choice = Mid(List(1), I1, 1)
A = Val(choice)
List(1) = Replace(List(1), choice, "")
For I2 = 1 To 8
List(2) = List(1)
choice = Mid(List(2), I2, 1)
B = Val(choice)
List(2) = Replace(List(2), choice, "")
For I3 = 1 To 7
List(3) = List(2)
choice = Mid(List(3), I3, 1)
C = Val(choice)
List(3) = Replace(List(3), choice, "")
For I4 = 1 To 6
List(4) = List(3)
choice = Mid(List(4), I4, 1)
D = Val(choice)
List(4) = Replace(List(4), choice, "")
For I5 = 1 To 5
List(5) = List(4)
choice = Mid(List(5), I5, 1)
E = Val(choice)
List(5) = Replace(List(5), choice, "")
For I6 = 1 To 4
List(6) = List(5)
choice = Mid(List(6), I6, 1)
F = Val(choice)
List(6) = Replace(List(6), choice, "")
For I7 = 1 To 3
List(7) = List(6)
choice = Mid(List(7), I7, 1)
G = Val(choice)
List(7) = Replace(List(7), choice, "")
For I8 = 1 To 2
List(8) = List(7)
choice = Mid(List(8), I8, 1)
H = Val(choice)
List(8) = Replace(List(8), choice, "")
For I9 = 1 To 1
List(9) = List(8)
choice = Mid(List(9), I9, 1)
I = Val(choice)
Debug.Print A, B, C, D, E, F, G, H, I
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。^^
でもvb2005だと動かないので改良しないといけないですね。

お礼日時:2006/05/17 18:25

この質問に類似していますね。


http://personal.okwave.jp/kotaeru.php3?q=2113807
こちらの回答で、わかりますか?
    • good
    • 0
この回答へのお礼

わかりません。。。。

お礼日時:2006/05/17 18:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!