Помогите разобраться в задаче. Есть два вопроса

Таблица заполняется по следующему алгоритму:
В таблицу вносятся все натуральные числа по порядку. 1 становится в левую верхнюю ячейку, затем выбирается самая левая незаполненная ячейка в самой первой строке таблицы и заполняется. Затем, пока у последней заполненной ячейки сосед слева существует и заполнен, опускаемся вниз и заполняем очередную ячейку. Когда же не окажется соседа слева, то начинается заполнение клеток справа налево. После того как будет заполнена ячейка в первом столбце, После этого алгоритм заполнения повторятся. Необходимо вывести строку и столбец в котором будет находится число, введенное с клавиатуры.

  1. Как определить размер массива, если мы знаем только число, введенное пользователем?
  2. В целом алгоритм решения я понял, но как вывести эту самую таблицу на экран? Значения ведь не по порядку идут.

Ответы (1 шт):

Автор решения: MBo

Массив и сама таблица не нужны. Заполнение бесконечной таблицы идет уголками, так что можно посчитать, сколько чисел содержат один квадратик, второй квадратик и так далее, и решить обратную задачу - к какому по очереди уголку принадлежит данное число, потом определить- вертикали его или горизонтали оно принадлежит, и вывести строку и столбец

1  2  5 ......
4  3  6 
9  8  7
.....

Например, число 6 принадлежит третьему по счёту уголку, поскольку оно больше, чем 2^2

→ Ссылка