For a = 1 To 10 For b = a + 1 To 10 For c = b + 1 To 10 For d = c + 1 To 10 ... là le calcul que je veux faire avec mes 10 lettres toutes différentes ... Next j Next i .. Next a
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionOption Explicit Dim T(5) As String Dim n As Integer Dim x(9) As Integer Dim V(6) As Integer Dim niv As Integer Dim zniv As Integer Dim i As Integer Dim j As Integer Dim s1 As Long Dim s2 As Long Dim b As Boolean Private Sub Command1_Click() n = 6 T(0) "R": T(1) "O": T(2) = "U": T(3) = "E" T(4) "V": T(5) "L" b True: zniv 0 While b = True b = False: Call Cherche(zniv) Wend MsgBox "Terminé" End Sub Private Sub Cherche(niv As Integer) If niv < n Then For i = 0 To 9 If x(i) = 0 Then Exit For Next If i < 10 Then x(i) = 1 V(niv) = i Call Cherche(niv + 1) Exit Sub Else GoTo P10 End If End If s1 = 1000 * V(0) + 100 * V(1) + 10 * V(2) + V(3) s2 = 1000 * V(4) + 100 * V(3) + 10 * V(5) + V(1) s1 = s1 + s1 ' List1.AddItem s1 & " - " & s2 If s1 = s2 Then MsgBox "Trouvé " & V(0) & " " & V(1) & " " & V(2) & " " & V(3) & " " & V(4) & " " & V(5) ' Exit Sub End If Call Cherche(niv - 1) Exit Sub P10: For niv = (n - 1) To 0 Step -1 i = V(niv) x(i) = 0 If i = 9 Then Exit For Next niv = niv - 1 If niv < 0 Then Exit Sub j = V(niv) For i 0 To 9: x(i) 0: Next For i 0 To (niv - 1): x(V(i)) 1: Next For i = 0 To 9 If x(i) = 0 And i > j Then Exit For Next If i < 10 Then x(i) = 1 V(niv) = i b True: zniv niv + 1 Exit Sub End If End Sub
Option Explicit Dim T(7) As String Dim n As Integer Dim x(9) As Integer Dim V(7) As Long Dim niv As Integer Dim zniv As Integer Dim i As Integer Dim j As Integer Dim s1 As Long Dim s2 As Long Dim S3 As Long Dim b As Boolean Dim s As String Private Sub Command1_Click() ' 'ROUE + ROUE = VELO ' n = 6' T(0) "R": T(1) "O": T(2) = "U": T(3) = "E"' T(4) "V": T(5) "L" 'CHER + LUC = MERCI n = 8 T(0) "C": T(1) "H": T(2) = "E": T(3) = "R" T(4) "L": T(5) "U": T(6) "M": T(7) "I": b True: zniv 0 While b = True b = False: Call Cherche(zniv) Wend MsgBox "Terminé" End Sub Private Sub Cherche(niv As Integer) If niv < n Then For i = 0 To 9 If x(i) = 0 Then Exit For Next If i < 10 Then x(i) = 1 V(niv) = i Call Cherche(niv + 1) Exit Sub Else GoTo P10 End If End If ' s1 = 1000 * V(0) + 100 * V(1) + 10 * V(2) + V(3) ' s2 = s1 ' S3 = 1000 * V(4) + 100 * V(3) + 10 * V(5) + V(1) s1 = 1000 * V(0) + 100 * V(1) + 10 * V(2) + V(3) s2 = 100 * V(4) + 10 * V(5) + V(0) S3 = 10000 * V(6) + 1000 * V(2) + 100 * V(3) + 10 * V(0) + V(7) If (s1 + s2) = S3 Then s = vbNullString For i 0 To (n - 1): s s & V(i) & " ": Next List1.AddItem s & " " & s1 & "+" & s2 & "=" & S3 DoEvents End If Call Cherche(niv - 1) Exit Sub P10: niv = niv - 1 If niv < 0 Then Exit Sub j = V(niv) For i 0 To 9: x(i) 0: Next For i 0 To (niv - 1): x(V(i)) 1: Next For i = 0 To 9 If x(i) = 0 And i > j Then Exit For Next If i < 10 Then x(i) = 1 V(niv) = i b True: zniv niv + 1 Exit Sub Else GoTo P10 End If End Sub