Форум » Рекурсивные процедуры и функции » задание 16 №4543 » Ответить

задание 16 №4543

daryy: def f(n): if n==0: return 0 if n>0 and n%2==0: return f(n/2)-1 if n>0 and n%2==1: return 3+f(n-1) k=0 for i in range (0,1000): if f(i)==3: k+=1 print(k) правильный ответ 173, у меня выводит 103, где может быть ошибка?

Ответов - 1

Поляков: Первая ошибка в том, что вы не оформили программу (см. текст на желтом фоне вверху). Вторая - в том, что при работе с целыми числами лучше использовать целочисленное деление //. Третья - вы неверно списали формулу в программу.



полная версия страницы