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

Задача о восьми ферзях - C++

Восстановить пароль Регистрация
 
khaleesi
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 12
14.06.2014, 14:34     Задача о восьми ферзях #1
Есть у меня массив из 8 случайных чисел от 0 до 7. Мне нужно найти количество атакующих друг друга пар ферзей. Моя функция вроде считает, но у меня получается 72, хотя наибольшее количество - 56 (раз пары, то лучше 28, но мне для начала чтобы правильно считалось хотя бы). Может кто сталкивался с этой задачей и укажет на ошибку.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int N = 8;
int queenPosition[N] = {2, 7, 3, 4, 5, 0, 1, 6};
for (int i = 0; i < N; i++) 
        std::cout << queenPosition[i] << ' ';
 
    int tmp = 0;
    for (int j = 0; j < N - 1; j++) {
        for (int k = j + 1; k < N; k++) {
            if (queenPosition[k] == queenPosition[j]) tmp++; 
            if (k - j == abs(queenPosition[k] - queenPosition[j])) tmp++; 
        }
    }
    std::cout << "\n" << tmp << std::endl;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2014, 14:34     Задача о восьми ферзях
Посмотрите здесь:

C++ О 8 ферзях(Без рекурсии)
C++ Задача о пяти ферзях
НОД восьми чисел C++
C++ Задача о 8 ферзях
Ошибка в задаче о восьми ферзях C++
C++ Задача о 8 ферзях
Задача о 8 ферзях C++
Запись последних восьми бит C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
 Аватар для Mr.X
2801 / 1577 / 247
Регистрация: 03.05.2010
Сообщений: 3,662
14.06.2014, 16:09     Задача о восьми ферзях #2
Недвно решалась подобная задача.
khaleesi
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 12
14.06.2014, 18:08  [ТС]     Задача о восьми ферзях #3
Цитата Сообщение от Mr.X Посмотреть сообщение
Недвно решалась подобная задача.
Задача то у меня решается. Я не пойму, почему у меня выходят такие цифры как 72. Откуда они?
Yandex
Объявления
14.06.2014, 18:08     Задача о восьми ферзях
Ответ Создать тему
Опции темы

Текущее время: 06:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru