Автор | Сообщение |
|
Отправлено: 09.05.21 14:28. Заголовок: Задача 16.70
Добрый день! С праздником всех! Помогите разобраться,пожалуйста. Задача 16.70 F(n) = 1 при n = 0, F(n) = 2*F(1 – n) + 3*F(n – 1) + 2, когда n > 0, F(n) = –F(–n), когда n < 0. Чему равна сумма цифр значения F(50)? Вот моя программа: сначала попробовал определить чему равна F(50), но ответа не дождался. Тогда попробовал F(25), через пару минут пришел ответ: 55. Т.е. программа работает, но что делать с F(50)? def F( n ): if n == 0: return 1 elif n > 0: return 2*F(1-n) + 3*F(n-1)+ 2 elif n < 0: return -F(-n) print (F(25))
|
|
|
Ответов - 2
[только новые]
|
|
|
Отправлено: 09.05.21 22:54. Заголовок: Ответ
Здравствуйте, Александр Львович! Анализ алгоритма задачи 16.70 позволяет записать решение, например, так: цитата: | def f(n): if n == 0: return 1 if n == 1: return 7 if n > 1: return f(n - 1) + 2 print(sum([int(digit) for digit in list(str(f(50)))])) |
|
Посмотрите здесь (polyakovss Сообщение: 426).
|
|
|
|
Отправлено: 11.05.21 09:08. Заголовок: спасибо большое, Сер..
спасибо большое, Сергей Сергеевич! Буду пробовать.
|
|
|
|