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

Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.74
Jimm34
1 / 1 / 0
Регистрация: 30.11.2013
Сообщений: 67
15.06.2014, 15:56     Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) #1
Шахматная фигура «конь» перемещается на 1 клетку по горизонтали и на 2 клетки по
вертикали или на 2 клетки по горизонтали и 1 - по вертикали. «Конь» начинает
свой путь с нижнего левого угла и перемещается по шахматной доске, которая масс n x n
клеток. Определить количество способов, которыми «конь» может дойти до правого верхнего угла доски по к шагов.







_____________________________________________________________
Ребят, не шарю как делать, помогите.

Добавлено через 36 минут
доску я создал вот с конём проблема что бы он ходил

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
using namespace std;
int main()
{
for(int y=0;y<=6;y++)
{
    for(int x=0;x<=6;x++){
        if((x+y)%2==0){//тут только (х+у) и все работает
 
            cout<<"+ ";
        }else cout<<"* ";
    }
cout<<endl;
}
 system ("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2014, 15:56     Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол)
Посмотрите здесь:

на шахматной доске заданы 2 клетки соедините эти 2 клетки кратчайшим путем коня C++
Перейти из левого нижнего в правый верхний угол массива, двигаясь вверх либо вбок, суммируя элементы через которые идем. Сумма должна быть минимальной C++
C++ Путем перестановок строк и столбцов элемент переместить в правый верхний угол подмассива (С Turbo Pascal на C++)
C++ Ход коня по шахматной доске случайным образом
Необходимо организовать движение шашки по шахматной доске C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
16.06.2014, 17:18     Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) #21
а кто сказал?

они могут дать тест с ответом, на котором программа неправильно работает?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jimm34
1 / 1 / 0
Регистрация: 30.11.2013
Сообщений: 67
16.06.2014, 18:44  [ТС]     Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) #22
Цитата Сообщение от SlavaSSU Посмотреть сообщение
а кто сказал?
они могут дать тест с ответом, на котором программа неправильно работает?
Препод сказал) в рятли он даст мне готовую задачу)
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
16.06.2014, 18:56     Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) #23
задача то хоть такая?
Jimm34
1 / 1 / 0
Регистрация: 30.11.2013
Сообщений: 67
16.06.2014, 19:17  [ТС]     Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) #24
Цитата Сообщение от SlavaSSU Посмотреть сообщение
задача то хоть такая?
Да условие тоже самое)(за 6 ходов конь не дойдёт от угла до угла нужно как минимум 7) А когда я в задаче ввожу место 6 (7) то способов выдаёт 0.
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
16.06.2014, 19:29     Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) #25
за 6 ходов конь доходит от угла до угла!!!
ок, щас спрошу насчет этой задачи на другом форуме.
Jimm34
1 / 1 / 0
Регистрация: 30.11.2013
Сообщений: 67
16.06.2014, 19:47  [ТС]     Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) #26
Цитата Сообщение от SlavaSSU Посмотреть сообщение
за 6 ходов конь доходит от угла до угла!!!
ок, щас спрошу насчет этой задачи на другом форуме.
если за 6 ходов покажи как ты ходил)
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
16.06.2014, 20:02     Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) #27
A1 -> C2 -> E3 -> F5 -> H6 -> F7 -> H8, например!!!

я спросил на другом форуме, мне пока не сказали верно или нет, но сказали напиши перебор и сверь ответы.

я написал перебор:

C++ (Qt)
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
#include <iostream>
 
using namespace std;
 
const int dxh[] = {-2, -2, 2, 2, -1, -1, 1, 1};
const int dyh[] = {-1, 1, -1, 1, -2, 2, -2, 2};
 
bool in(int i, int j, int n, int m)
{
    return i >= 1 && i <= n && j >= 1 && j <= m;
}
 
int ans = 0;
int n, need;
 
void rec(int i, int j, int k)
{
    if(i < 1 || i > n || j < 1 || j > n)
        return;
    if(k == need)
    {
        if(i == 1 && j == n)
            ans++;
        return;
    }
 
    for(int dir = 0; dir < 8; dir++)
    {
        int ni = i + dxh[dir];
        int nj = j + dyh[dir];
        rec(ni, nj, k + 1);
    }
}
 
int main()
{
    cin >> n >> need;
    rec(n, 1, 0);
    cout << ans << endl;
    return 0;
}

ответы совпадают!
твой препод может быть не знает, что такое динамическое программирование?
и он захотел увидеть именно решение перебором и сразу, не прочитав и не поняв мой код, сказал, что это неверно!
Jimm34
1 / 1 / 0
Регистрация: 30.11.2013
Сообщений: 67
16.06.2014, 20:20  [ТС]     Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) #28
Цитата Сообщение от SlavaSSU Посмотреть сообщение
A1 -> C2 -> E3 -> F5 -> H6 -> F7 -> H8, например!!!
я спросил на другом форуме, мне пока не сказали верно или нет, но сказали напиши перебор и сверь ответы.
я написал перебор:
всё таки 7 ходов минималка но в задаче всё равно когда в водишь размер доски 8 и сколько ходов 7 то пишет ответ способов 0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2014, 20:22     Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол)
Еще ссылки по теме:

C++ Заполнить матрицу ЛП, от левого нижнего угла по диагонали: влево - вверх.
Заполнение матрицы с левого нижнего угла по диагонали (исправить программу) C++
Пройти по любому разрешенному пути игрового поля от верхнего левого угла до правого нижнего C++

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

Или воспользуйтесь поиском по форуму:
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
16.06.2014, 20:22     Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) #29
если еще раз будешь сдавать ему эту задачу, покажи ему перебор, если он скажет что он правильный(а он правильный!!!) то спроси, знает ли он метод динамического программирования.

Добавлено через 1 минуту
всё таки 7 ходов минималка но в задаче всё равно когда в водишь размер доски 8 и сколько ходов 7 то пишет ответ способов 0


то что я тебе показал - это 6 ходов(1 клетка стартовая, она за ход не считается).

за 7 ходов нет ни одного способа добраться до угла!
Yandex
Объявления
16.06.2014, 20:22     Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол)
Ответ Создать тему
Опции темы

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