![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 23.02.2014
Сообщений: 2
|
![]()
Я первокурсник, практически ничего не понимаю в C++. Хотелось бы, чтобы мне написали код для решения задачи. Вот задача, которую нужно решить.
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число – номер вертикали при счете слева направо, второе – номер горизонтали при счете снизу вверх. Даны натуральные числа k, l, m, n, каждое из которых не превосходит восьми. Определить, являются ли поля (k,l) и (m,n) полями одного цвета. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,381
|
![]()
Начните не с С++, а с того, что нарисуйте доску и нанесите координаты.
Попробуйте понять простое свойство, которое связывет цвет клетки с ее координатами. Знание операции сложения и понимание того, как определить четность числа, или его нечетность - приветствуются. Если эта часть задачи была понята, то в Google или в Яндексе пишем запрос на функцию, с помощью которой и можно решить задачу. Тут все не просто, а очень просто. Как-то так, ...
Как-то так, ...
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 23.02.2014
Сообщений: 2
|
![]()
Спасибо. Но этого мне мало. Я дуб дубом. Я понял, что (чётное,нечётное) либо (нечётное,чётное) дают белый цвет, а (чётн,чётн) либо (нечётн,нечётн) дают чёрный цвет. Дальше я не понял, что я должен делать.
![]() |
![]() |
![]() |
![]() |
#4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,431
|
![]()
Хорошо, а теперь нужно посмотреть на разницу по каждой из координат. Если разница по координате нечетна, то цвет меняется. Если по обеим координатам разница нечетна, то цвет не изменится (он сменит цвет два раза). В принципе, это все "загоняется" в одну простую формулу.
UPD ViktorR, и правда, не заметил этого - каждую задачку можно решить кучей способов ![]()
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() Последний раз редактировалось BDA; 23.02.2014 в 23:04. |
![]() |
![]() |
![]() |
#5 | ||
Старожил
Регистрация: 23.10.2010
Сообщений: 2,381
|
![]()
1. Ваш основной вопрос:
Цитата:
3. Таким образом, для получения ответа достаточно проверить, что сумма координат одной ячейки обладает таким же свойством, как и второй. Если Да, то они одного цвета, иначе ... Цитата:
Просто опиши переменные, напиши код для чтения координат с клавиатуры. Для начала можно данные (координаты ячеек) задать в программе. Получи сумму координат одной ячейки, а затем второй. Получи остаток от деления на 2 этих сумм (целочисленное деление) и сравни их. PS: Я в С++ (и не только в нем) слаб и потому не могу дать готовое решение. Тут ведь важен алгоритм, а остальное бери прямо из учебника. Там, обычно, примеров более чем достаточно. Как-то так, ...
Как-то так, ...
|
||
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,609
|
![]()
если числа k и m одной четности И l и n одной четности, то поля одного цвета
четность определяется нахождением остатка от деления на 2. можно завести 4 переменных-флага, в которых будет указываться является ли каждое из чисел k, l, m, n четным. Код:
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
Последний раз редактировалось challengerr; 24.02.2014 в 16:12. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,381
|
![]()
Прошу заметить, что это слишком уж ...
Достаточно сложить координаты k, l для одного поля и m, n для второго. Например имеем: 1. Ввести координаты первого поля: (k, l) 2. Ввести координаты второго поля: (m, n) 3. Если ((k + l) % 2) = ((m + n) % 2) то одного цвета, а инче - разного. Код:
Как-то так, ...
Как-то так, ...
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Решить задачу на Visual C++ [ср00чно, платно] | propoker23 | Общие вопросы C/C++ | 1 | 28.12.2011 22:53 |
Решить задачу на Visual C++ [ср00чно, платно] | propoker23 | Фриланс | 3 | 28.12.2011 19:52 |
Помогите пожалуйста решить задачу по с++ visual | l.e.n.a | Помощь студентам | 1 | 19.01.2009 23:37 |