Расставить восемь ферзей на шахматной доске так, чтобы они не били друг друга - VB
Формулировка задачи:
Ребят, помогите решить задачку. Расстановка 8 ферзей на шахматной доске так, чтобы они не били друг друга. Нужен самый простой в написании код, который будет выдавать кол-во возможных вариантов расстановки. Без формы.
Решение задачи: «Расставить восемь ферзей на шахматной доске так, чтобы они не били друг друга»
textual
Листинг программы
Sub main() Dim I As Integer, J As Integer, Amin As Integer, CountP As Integer ReDim a(1 To 8): For J = 1 To 8: a(J) = J: Next J 1: For I = 1 To 8 - 1 For J = I + 1 To 8 If Abs(a(I) - a(J)) = (J - I) Then GoTo 2 Next J Next I CountP = CountP + 1 2: For J = 8 - 1 To 1 Step -1 If a(J) < a(J + 1) Then For I = 8 To J + 1 Step -1 If a(J) < a(I) Then Exit For Next I Amin = a(I): a(I) = a(J): a(J) = Amin For I = 1 To (8 - J) \ 2 Amin = a(J + I): a(J + I) = a(8 - I + 1): a(8 - I + 1) = Amin Next I GoTo 1 End If Next J MsgBox CountP End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д