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

n ферзей не бьют друг друга - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Указатель на структуру http://www.cyberforum.ru/cpp-beginners/thread949998.html
Здравствуйте. Объявлена структура: typedef struct str { long field1; .... } str_1;
C++ Классы библиотек Здорова господа!!!! Есть задачка: "Изучите пару широко используемых библиотек. Классифицируйте их классы в терминах конкретных типов, абстрактных типов, узловых классов, дескрипторных классов, и интерфейсных классов. Используются ли в этих библиотеках абстрактные узловые и конкретные узловые классы? Можно ли классы этих библиотек классифицировать как то иначе? Используются ли жирные... http://www.cyberforum.ru/cpp-beginners/thread949994.html
Unresolved external надоело уже C++
В чем ошибка?
C++ Простой консольный калькулятор
Я новичок, изучаю C++ всего первый день, начал изучение по книге Либерти "C++ за 21 день". Пока что из всех полученных мною знаний я попытался создать своеобразный мультифункционный калькулятор. #include <iostream> using namespace std; int Plus (int x, int y) { cout << "Vi vveli chisla " << x << " i " << y << "\n"; return (x+y);
C++ Анимация символов http://www.cyberforum.ru/cpp-beginners/thread949985.html
превед )) решил побаловаться в с++. Нарисовал простенький рисунок( \ / # $ .), а потом решил его "оживить" т.е. добавить анимацию.Делать решил через цикл фор. Но есть одна проблема.- Когда делал простую анимацию вроде - #include <iostream> using namespace std; int main()
C++ Нужнен Ваш совет Я хочу учится на программиста. Я решил изучать С но я не знаю с чего начать... Не могли бы вы мне помочь разобраться в этом. Напишите пожалуйста цепочку действий которую я должен сделать что бы изучение было последовательное . подробнее

Показать сообщение отдельно
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
07.09.2013, 23:40     n ферзей не бьют друг друга
Расставить size ферзей не бьющих друг друга на доске size*size.
Вывести в глобальный массив mass. В mass[i] поместить номер столбца(нумерация с нуля), на который нужно поставить ферзя в i-той строке.
Нужно использовать рекурсию. И функцию attacking(именно в этом виде).
Помогите плз только начал изучать c++ не могу разобраться. Рекурсия вообще тьма.

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
bool attacking(int x1,int y1,int x2, int y2){
// true если ферзи x1,y1 и x2,y2 бьют друг друга. Координаты с нуля до (size-1).  
return (i1==i2)||(j1==j2)||(i1+j1==i2+j2)||(i1-j1==i2-j2);
 
//пробую ставить ферзя в n-тую строку
void try_Ferz(int n){
 
if (n==size) return;
 
for (int i=0; i<size; i++) {
    bool not_attack=true; // not_attack - true, если новый ферзь не бьет предыдущие.
    for (int j = 0; j <n; j++) {
        if (attacking(n,i,j,mass[j]))
            not_attack=false;
    }
    if (not_attack) {
        mass[n]=i;
        try_Ferz(n+1);
        break;
    }
    if (n==size) return;
    
 
 
    }
return;
}
Выдает такое
Миниатюры
n ферзей не бьют друг друга  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru