В городе N, как это ни странно, живет ровно n детей. Чтобы обеспечить их всех подарками к новому году Фабрика Деда Мороза производит ровно n подарков. При этом, чтобы не повторяться, все подарки имеют разный вес: первый подарок...
В городе N, как это ни странно, живет ровно n детей. Чтобы обеспечить их всех подарками к новому году Фабрика Деда Мороза производит ровно n подарков. При этом, чтобы не повторяться, все подарки имеют разный вес: первый подарок весит 1 кг, а каждый следующий на 2 кг больше предыдущего. Деду Морозу необходимо подобрать сани правильной вместимости (вместимость должна точно совпадать с суммарным весом подарков). Чтобы Деду Морозу не мучаться каждый раз с подсчетом суммарного веса подарков, придумайте формулу, вычисляющую необходимую величину. Под формулой понимается некоторое выражение, которое может содержать целые числа, переменную n, операции сложения (обозначается «+»), вычитания (обозначается «-»), умножения (обозначается «*») и круглые скобки для изменения порядка действий. Умножение необходимо записывать с использованием знака «*». Запись вида «2n» для обозначения произведения числа 2 и переменной n неверная, нужно писать «2 * n». Пример правильного (по форме записи) выражения: 5 + (n - 1) * 2 + n*(n-1). P.S. Деду Морозу без разницы придумаете ли вы формулу или напишете свою программу вместо предложенного шаблона. Формат входных данных Полученную формулу необходимо вставить в код программы вместо многоточия. Обращаем внимание, что в конце строки обязательно должен стоять знак «;». Например, вот так: weight = 5 + (n - 1) * 2 + n*(n-1);
Ответ(ы) на вопрос:
Гость
Если я не ошибаюсь, то вес подарков - это последовательность нечетных чисел: 1, 3, 5, 7, 9 ... и таких чисел N
Остается найти сумму N чисел. Далее можно заметить, что
1 = 1² (N=1)
1 + 3 = 4 = 2² (N=2)
1 + 3 + 5 = 9 = 3² (N=3)
1 + 3 + 5+ 7 = 16 = 4² (N=4)
и так далее ...
То есть сумма нечетных N равна N²
Формула может быть такой:
weight = n*n;
Гость
Можно воспользоваться вариантом Vladmor, он более легкий и подходит под эту задачу, но чтобы не повторяться, для разнообразности, предложу свой вариант.
1+3+5+7 это ничто иное как арифметическая прогрессия.
Есть несколько формул суммы членов прогрессии, но под этот тип задачи подойдёт такая: [latex]S_{n} =\frac{2a_{1}+d(n-1)}{2} * n[/latex]
[latex] a_{1}[/latex] - это член последовательности с индексом 1, то есть первое число в ряду.
d - это разность между двумя соседними членами, из большего вычитаем меньшее
n - это сколько всего членов
и так, у нас получается
[latex] a_{1}[/latex] = 1 (в условии задачи сказано что первый подарок весит 1кг)
d = 2 (в условии сказано что следующий подарок увеличивается на 2, ничто иное как разность)
n = это переменная, она нам не известна, поэтому так и оставим.
[latex] S_{n} [/latex] - это сумма веса всех подарков, в примере используется слово "weight" что в переводе "вес", поэтому подставим это слово.
И теперь подставим что у нас имеется.
weight = [latex]\frac{2*1+2(n-1)}{2} * n[/latex]
weight =[latex]\frac{2+2(n-1)}{2} * n[/latex]
В коде программу будет записано так
weight = ( ( 2+2*(n-1) ) / 2)*n
Проверим, например у нас 5 детей, значит надо 5 подарков, это
1+3+5+7+9 = 25
Проверим формулу
weight = ( ( 2+2*(5-1) ) / 2)*5
weight = ( ( 2+2*4 ) / 2)*5
weight = ( ( 2+8 ) / 2)*5
weight = ( 10 / 2)*5
weight = 5*5
weight = 25
Всё сходится.
Расписал подробно, чтобы всё было понятно
Так же этот вариант подойдёт для других таких типовых задач, а вариант Vladmor подойдёт только в некоторых случаях, будь внимателен(на)
Не нашли ответ?
Похожие вопросы