Форум » Рекурсивные процедуры и функции » Задача 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: Большое спасибо за разьяснение.
полная версия страницы