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

восемь ферзей - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти обратную матрицу методом квадратного корня http://www.cyberforum.ru/cpp-beginners/thread216402.html
помогите, пожалуйста.нужно написать прогу на с++ :найти обратную матрицу методом квадратного корня) Дублирование тем запрещено правилами форума (п. 3.4). Не плодите одинаковых тем.
C++ Срочно до завтра! Работы минимум! #include <iostream> #include <vector> #include <string.h> #include <conio.h> using namespace std; int main(int argc, char *argv){ string str = "adlkalsdkmalksdfml kasmflkasmdflkmas lfkmalskdfmanjdfgkjhdb gjhsdbgkjehrgbkjsdhbgjdgb,s dnmgbs,dfgsdfghbsjdghbskdjghbksghbkslkasdflkasdflkasldfkmalsdkflksdflgksmdlfgkmsd;flgkmsd;fglksdf;glksldkfmlskdfmlsk"; cout <<"\n"; http://www.cyberforum.ru/cpp-beginners/thread216400.html
Исправть код. Срок - до завтра. C++
#include <iostream> using namespace std; struct element { public: element *next; element *pred; int data; }; class Spisok
C++ Метод статистики
Помогите, плиз. Вообщем необходимо зашифровать русский текст по крайней мере из 1000 символов и составить по этому тексту гистограмму распределения. Вообщем нужна 2 поля Memo. В одном будет открываться текстовый файл в исходном виде, а в другом мемо текст будет преобразовываться в зашифрованный вид, допустим со сдвигом на 1 символ вперед. Соответственно должно быть 2 гистограммы, где будут...
C++ Функция с переменным числом параметров http://www.cyberforum.ru/cpp-beginners/thread216372.html
Написать функцию sum с переменным числом параметров, которая находит сумму заданных обыкновенных дробей. Написать вызывающую функцию main, которая обращается к функции sum не менее трех раз с количеством параметров 5, 10, 12. уже столько над ней сижу и все ни как не получается, люди добрые помогите!!!!
C++ Задан целочисленный массив размера N. Отсортировать серии в массиве в порядке убывания их длины В общем, есть две задачи, ух на какую же веселую и ни черта не понятную для меня тему. 1. Задан целочисленный массив размера N. Отсортировать серии в массиве в порядке убывания их длины. 2. Задан вещественный массив размера N. Отсортировать все отрицательные элементы в порядке возрастания. Остальные элементы оставить без изменений. Пример: -4 5 -7 9 0 -1 3 -5 2 -6 → -7 5 -6 9 0 -5 3 -4 2 -1 подробнее

Показать сообщение отдельно
minigans
Сообщений: n/a
21.12.2010, 00:26     восемь ферзей
доброго времени суток
есть классическая задача о восьми ферзях:
Расставить на стандартной 64-клеточной шахматной доске 8 ферзей так, чтобы ни один из них не находился под боем другого

есть код (взятый отсюда http://www.youtube.com/watch?v=bF5d0tiGiJA)
C++
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int board[8][8];
 
void setQueen(int i, int j)
{
     for (int x=0; x <8; ++x)
     {
         ++board[x][j];
         ++board[i][x];
         int foo;
         foo = j - i + x;
         if (foo >= 0 && foo <8)
            ++board[x][foo];
         foo = j +i -x;
         if (foo >= 0 && foo <8)
            ++board[x][foo];
     }
     board[i][j] = -1;
}
 
void resetQueen(int i, int j)
{
     for (int x=0; x <8; ++x)
     {
         --board[x][j];
         --board[i][x];
         int foo;
         foo = j - i + x;
         if (foo >= 0 && foo <8)
            --board[x][foo];
         foo = j +i -x;
         if (foo >= 0 && foo <8)
            --board[x][foo];
     }
     board[i][j] = 0;
}
bool tryQueen (int i)
{
     bool result = false;
     for (int j = 0; j <8; ++j)
         {
             if (board[i][j] == 0)
                {
                setQueen(i,j);
                if (i == 7)
                  result = true;
                else
                  {
                       if(!(result = tryQueen(i+1)))
                         resetQueen(i,j);
                  
                  }
         } 
         if (result)
            break;
}
return result;
}                    
 
int main()
{
 for (int i = 0; i < 8; ++i)
     for (int j = 0; j < 8; ++j)
       board[i][j] = 0;
     tryQueen(0);
     for (int i = 0; i < 8; ++i)
     {    
         for (int j = 0; j < 8; ++j)
         {
             if (board[i][j] == -1)
                cout << "Q";
             else
                cout << ""; 
         }
     cout << endl; 
     }
     system("PAUSE");
     return EXIT_SUCCESS;       
}
как его изменить так, чтоб находились все 92 решения?

интернет искал, находил несколько вариантов исходного кода, но не смог разобраться как именно происходит поиск всех решений

данный вариант кода интересен тем что он довольно прост для понимания новичка

буду благодарен за любую помощь

p.s. Bloodshed Dev-C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru