Расставить восемь ферзей на шахматной доске так, чтобы они не били друг друга - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы