Какие будут значением строки и столбца, в котором окажется число n в бесконечной таблице? Входные данные: одно целое

  • 61
Какие будут значением строки и столбца, в котором окажется число n в бесконечной таблице? Входные данные: одно целое число n (1≤n≤1018).
Мария_2745
65
Чтобы найти номер строки и столбца, в которых окажется число \( n \) в бесконечной таблице, можно использовать следующий алгоритм.

1. Начните с изначальной ячейки с координатами (1, 1).
2. Установите значение переменной \( k \) равным 1. Эта переменная представляет номер текущего "квадрата" в таблице.
3. Установите значение переменной \( s \) равным 1. Эта переменная представляет сумму всех чисел внутри текущего "квадрата".
4. Входное число \( n \) должно быть больше или равно \( s \). Если \( n \) меньше \( s \), перейдите к шагу 6.
5. Увеличьте переменную \( k \) на 1 и пересчитайте значение переменной \( s \) по формуле \( s = s + 4k \). Перейдите к шагу 4.
6. Вычислите разницу \( d = n - s \). Это значение представляет собой разницу между входным числом \( n \) и суммой чисел внутри текущего "квадрата".
7. В строке номер \( k \) будет находиться число \( k + d \), а в столбце номер \( k - d \) будет находиться число \( k + d \).

Например, рассмотрим входное число \( n = 15 \).
- Начинаем с координат (1, 1).
- Переменная \( k \) равна 1, а переменная \( s \) равна 1.
- Поскольку \( n \) больше \( s \), увеличиваем \( k \) на 1 и пересчитываем \( s \). Теперь \( k \) равно 2, а \( s \) равно 5.
- Опять же, \( n \) больше \( s \), поэтому увеличиваем \( k \) на 1 и пересчитываем \( s \). Теперь \( k \) равно 3, а \( s \) равно 13.
- Опять же, \( n \) больше \( s \), поэтому увеличиваем \( k \) на 1 и пересчитываем \( s \). Теперь \( k \) равно 4, а \( s \) равно 25.
- Опять же, \( n \) больше \( s \), поэтому увеличиваем \( k \) на 1 и пересчитываем \( s \). Теперь \( k \) равно 5, а \( s \) равно 41.
- Опять же, \( n \) больше \( s \), поэтому увеличиваем \( k \) на 1 и пересчитываем \( s \). Теперь \( k \) равно 6, а \( s \) равно 61.
- Теперь \( n \) меньше \( s \), поэтому переходим к шагу 6.
- Вычисляем \( d = n - s \). Получаем \( d = 15 - 61 = -46 \).
- В строке номер 6 будет находиться число \( 6 + (-46) = -40 \), а в столбце номер 6 - (-46) будет находиться число \( 6 + (-46) = -40 \).

Таким образом, в бесконечной таблице число 15 будет находиться в строке номер 6 и столбце номер 52.