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

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

Войти
Регистрация
Восстановить пароль
 
khaleesi
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 12
#1

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

14.06.2014, 14:34. Просмотров 645. Ответов 2
Метки нет (Все метки)

Есть у меня массив из 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;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2014, 14:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача о восьми ферзях (C++):

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

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

Задача о 8 ферзях - C++
Помогите, пожалуйста, подсчитать сколько будет сделано возвратов return 0; в фукнцию char check(int*A, int n) Как поставить...

Задача о 8 ферзях - C++
вывести в файл все 92 возможных варианта(в виде матрицы, где расположение ферзя означает единицу, а пустые клетки 0) расстановки 8 ферзей...

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

Задача о 8 ферзях - C++
Условие ЗАДАЧи : В программе о восьми ферзях (рекурсивной) подсчитайте, сколько было сделано возвратов назад. Помогите, пожалуйста, в...

2
Mr.X
Эксперт С++
3050 / 1695 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
14.06.2014, 16:09 #2
Недвно решалась подобная задача.
0
khaleesi
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 12
14.06.2014, 18:08  [ТС] #3
Цитата Сообщение от Mr.X Посмотреть сообщение
Недвно решалась подобная задача.
Задача то у меня решается. Я не пойму, почему у меня выходят такие цифры как 72. Откуда они?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2014, 18:08
Привет! Вот еще темы с ответами:

Задача о ферзях - C++
Пожалуйста, помогите решить задачу. Дана шахматная доска размерностью N на N ( 1&lt;= N &lt;=10). Необходимо вывести количество способов,...

Задача о 8 ферзях рекурсивно - C++
нашел код, помогите сделать его рекурсивно а не поиском с возвратом позиций #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;time.h&gt; ...

Задача о пяти ферзях - C++
Добрый Вечер!!:) Помогите Пожалуйста решить задачу: Найдите такую расстановку пяти ферзей на шахматной доске, при которой каждое поле будет...

Задача о 8 ферзях: сколько было сделано возвратов назад - C++
Помогите переделать код под условие задачи. Условие задачи: В программе о восьми ферзях (рекурсивной) подсчитайте, сколько было...


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

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

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