Предмет: Информатика, автор: nastyacheru

Андрей написал функцию и передал в качестве параметра год рождения своей сестры — 2012..

Python

def f(n):
s = 0
while (n != 0):
s = s + n % 2
n = n // 2
return(s)


Какое значение вернет функция ?

Какое значение вернёт функция с тем же параметром, если в теле функции заменить число 2 на 10?

Приложения:

Ответы

Автор ответа: foxyrunofficial
2

Функция вернет значение: 7

Если в теле функции заменить число 2 на 10, то функция вернет значение 10

В функции цикл с предусловием выполняется пока переданный параметр (2017) не равен 0 (n != 0), функция суммирует остатки полученные при целочисленном деление этого числа на 2 (s = s + n % 2), а затем выполняет и само целочисленное деление этого числа на 2 (n = n // 2)

2017/2 = 1008 + остаток 1

1008/2 = 504 + остаток 0

504/2 = 252 + остаток 0

252/2 = 126 + остаток 0

126/2 = 63 + остаток 0

63/2 = 31 + остаток 1

31/2 = 15 + остаток 1

15/2 = 7 + остаток 1

7/2 = 3 + остаток 1

3/2 = 1 + остаток 1

1/2 = 0 + остаток 1

s = 0 (начальное значение) + 1 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 = 7

Если в теле функции заменить число 2 на 10, то функция будет вычислять сумму цифр числа, переданного ей как параметр

def f(n):

  s = 0

  while (n != 0):

      s = s + n % 10

      n = n // 10

  return(s)

2017/10 = 201 + остаток 7

201/10 = 20 + остаток 1

20/10 = 2 + остаток 0

2/10 = 0 + остаток 2

s = 0 (начальное значение) + 7 + 1 + 0 + 2 = 10

Похожие вопросы
Предмет: Русский язык, автор: timuryakupov20
Предмет: Английский язык, автор: mari00000