Цель: Понять
Данная функция в Python представляет собой пример того, как можно вычислить сумму цифр в двоичном или десятичном представлении числа.
Исходная функция:
def f(n): s = 0 while (n != 0): s = s + n % 2 n = n // 2 return sПроанализируем ее работу:
- Начинаем с загрузки нулевого значения для суммы
s - Затем в цикле мы продолжаем разбивать число
nна двоичные цифры (остаток от деления на 2) и накапливаем их сумму вs - Завершаем цикл, когда
nстановится равным 0 - Возвращаем полученную сумму
- Начинаем с загрузки нулевого значения для суммы
Если передать функции год рождения сестры (2012) в качестве параметра:
- Для значения 2012:
2012 % 2 = 0, суммаsстановится 0,nстановится 10061006 % 2 = 0,sостается 0,nстановится 503503 % 2 = 1,sувеличивается на 1,nстановится 251- ...
- Продолжаем этот процесс до тех пор, пока
nне станет равным 0. Получаем сумму цифр 6.
- Для значения 2012:
Если заменить число 2 на 10:
- Теперь функция будет считать сумму цифр в десятичном представлении числа:
- Для значения 2012 и деления на 10:
2012 % 10 = 2, суммаs = 2,n = 201201 % 10 = 1,s = 3,n = 2020 % 10 = 0,s = 3,n = 22 % 10 = 2,s = 5,n = 0- Получаем итоговую сумму 5 в десятичной системе.
Таким образом, если в функции заменить число 2 на 10 и передать год рождения сестры (2012) в качестве параметра, функция вернет значение 5.