Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 482
#1

Перечислить все расстановки 8-ми ферзей на шахматной доске - C++

27.04.2010, 21:36. Просмотров 882. Ответов 0
Метки нет (Все метки)

Может есть у кого нибудь такая задача? она считается классической, хочу разобрать это решение, но она на паскале, не мог бы кто нибудь помочь с переводом на с++?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 program Queens;
   const N=8;
   type Index=1..N;
    Rasstanovka=array [Index] of 0..N;
   var X:Rasstanovka;
       Count:word;
   function P(var X:Rasstanovka;k,y:Index):boolean;
     var i:Index;
   begin
     i:=1;
     while (i<k)and(y<>X[i])and(abs(k-i)<>abs(y-X[i])) do inc(i);
     P:=i=k
   end;
   procedure Backtracking(k:Index);
     var i,y:Index;
   begin
     for y:=1 to N do
       if P(X,k,y) then
     begin
       X[k]:=y;
       if k=N then
         begin
           for i:=1 to N do write(X[i]);writeln;inc(Count)
         end;
       Backtracking(k+1)
     end
   end;
 begin
   Count:=0;
   writeln('Расстановки ',N,' ферзей:');
   Backtracking(1);
   writeln('Всего ',Count,' расстановок')
 end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2010, 21:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перечислить все расстановки 8-ми ферзей на шахматной доске (C++):

Нужно написать программу для расстановки 5 ферзей на шахматной доске - C++
Нужно написать программу для расстановки 5 ферзей на шахматной доске,чтобы эти 5 ферзей били всё поле и вывести число вариантов расстановки...

Варианты размещения восьми ферзей на шахматной доске - C++
Само задание: Найти все варианты размещения восьми ферзей на шахматной доске таким образом, чтобы никакие две фигуры не размещались на...

Расставить 8 ферзей на шахматной доске 8 на 8, которые не бьют друг друга - C++
Нужно написать программу которая расставляет на шахматной доске 8 ферзей, которые не бьют друг друга. обязательно использование рекурсии,...

Расстановка восьми ферзей на шахматной доске так, чтобы ни один не угрожал другому - C++
5. Расстановка восьми ферзей на шахматной доске так, чтобы ни один не угрожал другому.

Сформировать все возможные варианты расстановки ферзей на поле, где они бы не били друг друга - C++
Помогите написать программу, которая сформирует все возможные варианты расстановки m (m&gt;3) ферзей на шахматной доске m х m клеток, при...

На шахматной доске отметить все клетки, которые бьет слон - C++
Шахматная доска – игровое поле 8 × 8. Сформировать двумерный массив A – схематическое изображение доски, на котором отметить положение...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2010, 21:36
Привет! Вот еще темы с ответами:

Расставить 8 Ферзей на шахмотной доске... в борланд С - C++
Расставить 8 ферзей на шахматной доске, чтобы они не били друг друга.... Программу надо выполнить Borland C компилятор DOSA. ...

Числа на шахматной доске в С++ - C++
В клетках шахматной доски находятся целые числа. --- Определить в программе глобальные данные- константу N=8 и двумерный числовой массив...

Ход на шахматной доске - C++
Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, а второе - номер горизонтали. Данные...

Числа на шахматной доске - C++
В клетках шахматной доски находятся целые число. --- Определить в программе глобальные данные – константу N = 8 и двумерный числовой массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru