В городе N, как это ни странно, живет ровно n детей. Чтобы обеспечить их всех подарками к...

0 голосов
32 просмотров

В городе 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);


Информатика (17 баллов) | 32 просмотров
0

Нужно переписать из учебника формулу суммы n членов арифметической прогрессии с а1=1 и разностью 2? Или я чего-то не догоняю в условии?

Дано ответов: 2
0 голосов
Правильный ответ

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

1+3+5+7 это ничто иное как арифметическая прогрессия.
Есть несколько формул суммы членов прогрессии, но под этот тип задачи подойдёт такая: 
S_{n} =\frac{2a_{1}+d(n-1)}{2} * n

a_{1} - это член последовательности с индексом 1, то есть первое число в ряду.
d - это разность между двумя соседними членами, из большего вычитаем меньшее

n - это сколько всего членов

и так, у нас получается
a_{1} = 1 (в условии задачи сказано что первый подарок весит 1кг)
d = 2 (в условии сказано что следующий подарок увеличивается на 2, ничто иное как разность)
n = это переменная, она нам не известна, поэтому так и оставим.
S_{n} - это сумма веса всех подарков, в примере используется слово "weight" что в переводе "вес", поэтому подставим это слово.

И теперь подставим что у нас имеется.
weight = \frac{2*1+2(n-1)}{2} * n
weight =\frac{2+2(n-1)}{2} * n

В коде программу будет записано так
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 подойдёт только в некоторых случаях, будь внимателен(на)

(8.6k баллов)
0

Да, все правильно и если сделать последний шаг: расскрыть скобки в выражении то получим: ( ( 2+2*(n-1) ) / 2)*n = (2+2*n-2)/2*n = n*n

0 голосов

Если я не ошибаюсь, то вес подарков - это последовательность нечетных чисел: 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;




(13.9k баллов)
0

Согласен. Формула будет именно такой.