Помогите разобраться в задаче. Есть два вопроса
Таблица заполняется по следующему алгоритму:
В таблицу вносятся все натуральные числа по порядку. 1 становится в левую верхнюю ячейку, затем выбирается самая левая незаполненная ячейка в самой первой строке таблицы и заполняется. Затем, пока у последней заполненной ячейки сосед слева существует и заполнен, опускаемся вниз и заполняем очередную ячейку. Когда же не окажется соседа слева, то начинается заполнение клеток справа налево. После того как будет заполнена ячейка в первом столбце, После этого алгоритм заполнения повторятся. Необходимо вывести строку и столбец в котором будет находится число, введенное с клавиатуры.
- Как определить размер массива, если мы знаем только число, введенное пользователем?
- В целом алгоритм решения я понял, но как вывести эту самую таблицу на экран? Значения ведь не по порядку идут.
Ответы (1 шт):
Массив и сама таблица не нужны. Заполнение бесконечной таблицы идет уголками, так что можно посчитать, сколько чисел содержат один квадратик, второй квадратик и так далее, и решить обратную задачу - к какому по очереди уголку принадлежит данное число, потом определить- вертикали его или горизонтали оно принадлежит, и вывести строку и столбец
1 2 5 ......
4 3 6
9 8 7
.....
Например, число 6 принадлежит третьему по счёту уголку, поскольку оно больше, чем 2^2