Сумма элементов массива
Представьте себе, что в массиве записаны зарплаты сотрудников, к примеру, местного пункта выдачи заказов и бухгалтеру требуется найти общую сумму, которую нужно будет выплатить. Для этого нужно сложить все числа, которые находятся в массиве.
amount. Классический способ решения данной задачи это выполнение перебора всех элементов массива в цикле. На каждой итерации цикла к значению переменной amount прибавляется значение очередного элемента массива. amount = 0
for i in range(N):
amount += A[i]
print(amount) В таблице ниже показано как работает данный алгоритм для массива А:
| 0 | 1 | 2 | 3 | 4 | |
|---|---|---|---|---|---|
| A | 5 | 2 | 8 | 3 | 1 |
А теперь давайте выполним трассировку (т.е., ручную прокрутку) программы и запишем в таблице выполняемые команды (операторы) и изменение всех переменных (однако сам массив А при этом не меняется)
| Оператор | i | amount | |
|---|---|---|---|
| 1 | amount = 0 | 0 | |
| 2 | i = 0 | 0 | |
| 3 | amount += A[0] | 5 | |
| 4 | i += 1 | 1 | |
| 5 | amount += A[1] | 7 | |
| 6 | i += 1 | 2 | |
| 7 | amount += A[2] | 15 | |
| 8 | i += 1 | 3 | |
| 9 | amount += A[3] | 18 | |
| 10 | i += 1 | 4 | |
| 11 | amount += A[4] | 19 |
Нашим движком подсветки синтаксиса выделены команды, которые выполняются автоматически в цикле по переменной: в строке 2 переменной i присваивается начальное значение, а в строках 4, 6, 8 и 10 после очередного повторения цикла значение этой переменной увеличивается на единицу.
Поскольку массив А не изменяется, сложить все его элементы удобнее с помощью такого цикла:
amount = 0
for x in A:
amount += x
print(amount) Стоит отметить, что при этом не нужно хранить размер массива в переменной.
Более того, в Python есть встроенная функция sum, которая сразу считает сумму элементов массива, так что задача решается в одну строку:
print(sum(A)) Произведение элементов массива вычисляется аналогично: вспомогательная переменная умножается на значение очередного элемента. Начальное значение этой вспомогательной переменной должно быть равно 1:
product = 1
for x in A:
product *= x
print(product)
forum Обсуждение (0)
+ Оставить отзывПока нет комментариев
Вы можете задать вопрос по учебному материалу первым!