Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2016, 16:18   #1
fufayka
 
Регистрация: 09.11.2016
Сообщений: 6
По умолчанию Язык С. Шахматный конь

Имеется доска n на m. Перебрать 8 вариантов клеток, в которые может попасть конь из данной клетки за один ход. Для всех клеток.

Последний раз редактировалось fufayka; 23.12.2016 в 22:31.
fufayka вне форума Ответить с цитированием
Старый 23.12.2016, 16:50   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от fufayka Посмотреть сообщение
Перебрать 8 вариантов клеток, в которые может попасть конь из данной клетки за один ход.
это в общем случае. для клеток по краям доски вариантов меньше 8-ми.

просто перебрать? Как пользователь узнает, что программа перебрала варианты?
Что должна выводить программа?

а так всё просто:
Код:
цикл по i от 1 до n
   цикл по j от 1 до m
       перебрать варианты полей, куда конь с поля [i,j] за один ход может пойти
Код:
процедура перебрать_варианты_полей, куда_конь [i,j]_может_пойти()
  цикл по k от i-2 до i+2
    цикл по h от j-2 до j+2
       если (модуль| (k-i)*(h-j) | равен 2) 
                      И (k>=1) И (k<=N) И (h>=1) И (h<=N)  
             конь может пойти на поле [k, h]
есть вопросы?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.12.2016, 19:12   #3
fufayka
 
Регистрация: 09.11.2016
Сообщений: 6
По умолчанию

Спасиюбо

Последний раз редактировалось fufayka; 24.12.2016 в 13:55.
fufayka вне форума Ответить с цитированием
Старый 24.12.2016, 02:08   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

ну просто же...
abs(dX+dY) == 3, где dX != 3 и dY!=3, и результирующие x/y не выходят за рамки от нуля до 7 и не бьют своих...
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 24.12.2016, 16:44   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
abs(dX+dY) == 3, где dX != 3 и dY!=3
не а.. проверьте для dx=5 dy=-2

и не проще ли
abs(dx*dy)=2
без дополнительной проверки значений dx и dy?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача конь и ферзь. forged Паскаль, Turbo Pascal, PascalABC.NET 5 01.10.2013 15:18
задача Конь и Ферзь Leopold8220 Паскаль, Turbo Pascal, PascalABC.NET 0 13.02.2013 20:05
Конь анна2709 Помощь студентам 1 12.04.2011 21:07
Шахматный турнир #2 - Играем! rpy3uH Свободное общение 12 15.03.2008 14:16