Форум » Рекурсивные процедуры и функции » Задача 5541 - неправильный ответ » Ответить

Задача 5541 - неправильный ответ

1llumi: Решение: [pre2] def f(n): if n==1: return 1 if n>1: return n*f(n-1)-1 print(int(f(1000)/f(997))) [/pre2] Ответ на сайте: 997001999 Мой ответ: 997002000

Ответов - 2

Александр Киселёв: [pre2] def f(n): if n==1: return 1 if n>1: return n*f(n-1)-1 print(f(1000)//f(997)) # 997001999 [/pre2] Всегда получайте целую часть от деления с помощью //. Такое поведение связано с погрешностью при работе с дробными числами. С математической точки зрения, ответ должен быть именно 997002000, но автор заложил подлянку в условии.

1llumi: Большое спасибо за разьяснение.



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