требуется вывести на экран все числа от нуля столбиком, чтобы при этом сумма всех чисел в столбце была строго меньше введенного пользователем числа

Теперь пользователь вводит целое положительное число, но от вас требуется вывести на экран все числа от нуля столбиком, чтобы при этом сумма всех чисел в столбце была строго меньше введенного пользователем числа.

Sample Input:

17 Sample Output:

0 1 2 3 4 5 пробовал как-то с int summ работать в цикле while, но что-то не получилось.


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

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

Cумма натуральных чисел от 1 до n определяется следующим выражением: n * (n + 1) / 2. Соответственно для определения n, при известной сумме необходимо решить указанное квадратное уравнение: x^2 + x - 2 * n = 0. Наименьший корень будет равен: x = ((8 * n + 1) ^ 0.5 - 1) / 2. Округляем в меньшую сторону до целого числа и получаем искомое n.

→ Ссылка