Вася изучал сейчас на информатике тему "Рекурсия". После урока на дощечке
Вася изучал сейчас на информатике тему "Рекурсия". После урока на дощечке осталась такая функция (для условия на языке Pascal процедура):
на языке Python:
def f(n):
print('*')
if n gt; 2:
f(n - 1)
f(n - 2)
на языке Pascal:
procedure f(n: longint);
begin
writeln('*');
if n gt; 2 then begin
f(n - 1);
f(n - 2);
end;
end;
на языке C++:
int f(int n)
cout lt;lt; '*' lt;lt; endl;
if (n gt; 2)
f(n - 1);
f(n - 2);
Вася задумался над таким вопросом а какое наименьшее естественное число необходимо поставить вместо n в вызов этой функции, чтоб было написано не меньше 5000 звездочек? Помогите ему выяснить ответ на этот вопрос.
В качестве ответа укажите одно естественное число.
f(1) = 1
f(2) = 1
f(3) = 1 + f(2) + f(1)
f(n) = 1 + f(n-1) + f(n-2)
Посчитаем на хаскеле f(n) при n=[1,2..20]
--Код haskell
f(1) = 1
f(2) = 1
f(n) = 1 + f(n-1) + f(n-2)
main = print(show [(n, f(n)) n lt;- [1,2..20]])
Вывод
(1,1),(2,1),(3,3),(4,5),(5,9),(6,15),(7,25),(8,41),(9,67),(10,109),(11,177),(12,287),(13,465),(14,753),(15,1219),(16,1973),(17,3193),(18,5167),(19,8361),(20,13529)
означает при f(18) = 5167 - т0 что надобно
Ответ 18
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.
Разные вопросы.
Обществознание.