過去ログ

???
Option Explicit
Dim a(6) As Integer
Sub Macro1()
Sheets("Sheet1").Select
Cells(1, 1).Value = 0
Range("A1").Select
Call saiki(1)
End Sub
Sub saiki(ByVal n As Integer)
Dim j As Integer
a(n) = 1
While a(n) <= 6
If onaji(n) = 0 Then
If n < 6 - 1 Then
Call saiki(n + 1)
Else
a(6) = 6
For j = 1 To 6 - 1
a(6) = a(6) + j - a(j)
Next j
Call check(1)
End If
End If
a(n) = a(n) + 1
Wend
End Sub
Sub check(ByVal x As Integer)
Dim b(6) As Integer
Dim dame As Integer
Dim j As Integer
For j = 1 To 6
b(j) = a(a(a(a(a(a(a(j)))))))
Next j
dame = 0
j = 1
While dame = 0 And j <= 6
If b(j) <> a(j) Then
dame = 1
Else
j = j + 1
End If
Wend
If dame = 0 Then
Cells(1, 1).Value = Cells(1, 1).Value + 1
For j = 1 To 6
Cells(Cells(1, 1).Value, j + 1).Value = a(j)
Next j
End If
End Sub
Private Function onaji(ByVal n As Integer) As Integer
Dim j As Integer
onaji = 0
j = 1
While onaji = 0 And j < n
If a(j) = a(n) Then
onaji = 1
Else
j = j + 1
End If
Wend
End Function
   12月18日(木) 12:49:11     33477

過去問題一覧へ戻る