![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 06.12.2010
Сообщений: 198
|
![]()
Не могу решить подскажите пожалуйста
Числовая «змейка» Бесконечная таблица заполнена подряд идущими целыми положительными числами, начиная с левого верхнего угла по принципу «змейки», как показано: 1 2 9 10 4 3 8 11 5 6 7 12 16 15 14 13 17 18 ... Например, число 12 в этой таблице находится в 3-ей строке и 4-ом столбце, а число 14 — в 4-ой строке и 3-ем столбце. Вам нужно вычислить число, находящееся в позиции, заданной номерами её строки и столбца. Формат входного файла input.txt В единственной строке файла записаны два разделенных пробелом целых положительных числа X и У (1 <Х, У< 1000) — номера строки и столбца заданной позиции. Формат выходного файла output.txt Выходной файл содержит единственное число — число, находящееся в заданной позиции таблицы. Пример input.txt 4 3 Пример output.txt 14 |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 06.12.2010
Сообщений: 198
|
![]()
1 2 9 10
4 3 8 11 5 6 7 12 16 15 14 13 17 18 ... |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 13.12.2007
Сообщений: 788
|
![]()
Логика не сложная:
1) Довольно просто посчитать элементы главной диагонали: 1 1+2 1+2+4 1+2+4+6 итд 2) Так же можно проанализировать несколько случаев: а) Если номер строки>номера столбца (ниже диагонали): а1) Если номер строки четный, то находим элемент главной диагонали в этой строке и прибавляем к нему разницу в индексах между номером стобца текущего элемента и элемента диагонали а2) Если номер строки нечетный, то то же самое, только не прибавлять разницу индексов, а вычитать б) Если номер строки<номера столбца (над диагональю): б1) Если номер столбца четный, то находим элемент главной диагонали в этом столбце и вычитаем разницу индексов по номеру строк б2) Если номер столбца нечетный, то аналогично, только прибавить в) Если номер строки=номеру столбца (на диагонали) то мы знаем как его найти (формула наверху) Сейчас попробую воплотить это в код
благодарность - сюда (не забываем писать от кого)
Последний раз редактировалось Zer0; 01.12.2011 в 08:05. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 13.12.2007
Сообщений: 788
|
![]() Код:
благодарность - сюда (не забываем писать от кого)
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
![]()
Zer0, привет - кстати, спасибо за плюсик. Попробую его дополнительно отработать )).
Смотри, вот так будет чуть проще, правда? )) Код:
Предпочитаю на "ты".
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 06.12.2010
Сообщений: 198
|
![]()
час попробую
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Змейка в C++ | Neo151 | Помощь студентам | 1 | 12.08.2011 12:59 |
змейка на с++ | danzel1 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 6 | 30.07.2011 09:06 |
Змейка на с++ | Banner | Помощь студентам | 5 | 26.02.2011 16:42 |
Змейка(С++) | MISHA13 | Помощь студентам | 1 | 08.02.2009 09:35 |