Задача следующая: из любого целого N, создать последовательность от 10 до N, вида:
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28
29 30 31 32 33 34 35 36
37 38 39 40 41 42 43
.......
...
.
N
думал часов 6, ничего так и не вышло.
ravager
1 уровень
Треугольник из цифр
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #598481
12 октября 2021, 19:52
А можешь пояснить, как должна выглядеть фигура для "близких" N: 11, 13, 14?
Например, для 13 какой вариант будет удовлетворять условию?Как правильно?
0
ravager
12 октября 2021, 22:21
думаю второй
0
hidden #598481
13 октября 2021, 07:47
Наверное на больших числах нагляднее.
Второй мне лично нравится меньше всего, смотри на примере числа 94:
Мне из перечисленных вариантов самым правильным кажется третий. Как ты считаешь?
0
ravager
13 октября 2021, 07:51
Действительно выглядит лучше
0
hidden #598481
13 октября 2021, 08:39решение
Ну тогда все решение сводится к тому, чтобы определить, сколько чисел вывести в первой строчке.
Для этого нужно рассчитать "вместимость" каждого треугольника.
Количество чисел полного треугольника = 1 + 2 + 3 + ... + x, где x - количество элементов в строке (и оно же количество строк)
Сделать это можно по формуле суммы чисел арифметической прогрессии.
Поскольку количество чисел в формуле будет совпадать с размером прогрессии,
то формула приобретает вид x * (x+1) / 2, где x - количество элементов в прогрессии.
То есть треугольник со стороной 12 будет вмещать 12 * 13 / 2 = 78 чисел,
Треугольник со стороной 13 вмещает 13 * 14 / 2 = 91 число и т.д.
Поскольку мы начинаем выводить с 10, то наш аргумент N надо уменьшить на 9. На примере при том же N=94 получится 85 - столько чисел нужно вывести. И осталось вычислить, что минимальным треугольником, вмещающим 85 чисел, является треугольник со стороной 13, т.к. 78 < 85 < 91. Поэтому начинаешь выводить с 13 чисел в строке, каждый раз уменьшаешь количество чисел на одно, и пока числа не кончатся.
+2
ravager
13 октября 2021, 10:35
Сделал сейчас это, работает приемлемо
0
ravager
13 октября 2021, 10:36
Ваш вариант кажется проще, я перечитаю и попробую сделать ещё раз, спасибо вам)
0