1 / 1 / 0
Регистрация: 29.09.2013
Сообщений: 72
1

Описать рекурсивную функцию Fib1(N) целого типа, вычисляющую N-й элемент последовательности чисел Фибоначчи.

26.09.2014, 12:57. Показов 8112. Ответов 4

Студворк — интернет-сервис помощи студентам
Вариант4. Описать рекурсивную функцию Fib1(N) целого типа, вычисляющую
N-й элемент последовательности чисел Фибоначчи (N — целое число):
F1 = F2 = 1, F(K) = F (K–2) + F( K–1), K = 3, 4, … .
С помощью этой функции найти пять чисел Фибоначчи с данными номерами, и вывести эти числа вместе с количеством рекурсивных вызовов
функции Fib1, потребовавшихся для их нахождения.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2014, 12:57
Ответы с готовыми решениями:

Описать нерекурсивную функцию целого типа, вычисляющую N-e число Фибоначчи по формуле
Описать нерекурсивную функцию Fib(N) целого типа , вычисляющую N-e число Фибоначчи F(N) по...

Описать рекурсивную функцию вычисления последовательности Фибоначчи: F0=0, F1=1,Fn = Fn-1 + Fn-2
Описать рекурсивную функцию вычисления последовательности Фибоначчи: F0=0, F1=1,Fn = Fn-1 + Fn-2.

Описать рекурсивную функцию Fact2(N) вещественного типа, вычисляющую значение двойного факториала
Описать рекурсивную функцию Fact2(N) вещественного типа, вычисляющую значение двойного факториала ...

Описать рекурсивную функцию NOD (A, B) целого типа, находящую наибольший общий делитель
1. Описать рекурсивную функцию NOD(A, B) целого типа, находящую наибольший общий делитель (НОД)...

4
Эксперт Pascal/Delphi
2385 / 1297 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
26.09.2014, 15:10 2
наверное так. в подсчете числа рекурсий не уверен
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  i:integer;
  rk:integer;
function Fib1(K:integer;var rk:integer):integer;
begin
  rk:=rk+1;
  if K>1 then Fib1:=Fib1(K-1,rk)+Fib1(K-2,rk) else Fib1:=K;
end;
begin
  for i:=0 to 5 do begin
  rk:=0;
    writeln('№ ',i,' значение :',Fib1(i,rk),' к-во рекурсий:',rk);
  end;  
end.
1
1 / 1 / 0
Регистрация: 29.09.2013
Сообщений: 72
30.09.2014, 09:09  [ТС] 4
Pascal
1
2
3
4
5
function Fib1(K:integer;var rk:integer):integer;
begin
  rk:=rk+1;
  if K>1 then Fib1:=Fib1(K-1,rk)+Fib1(K-2,rk) else Fib1:=K;
end;
что делает функция?

Добавлено через 16 минут
Обьясните программу подробно

Добавлено через 27 секунд
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  i:integer;
  rk:integer;
function Fib1(K:integer;var rk:integer):integer;
begin
  rk:=rk+1;
  if K>1 then Fib1:=Fib1(K-1,rk)+Fib1(K-2,rk) else Fib1:=K;
end;
begin
  for i:=0 to 5 do begin
  rk:=0;
    writeln('№ ',i,' значение :',Fib1(i,rk),' к-во рекурсий:',rk);
  end;  
end.
0
138 / 101 / 102
Регистрация: 03.02.2014
Сообщений: 425
01.10.2014, 17:16 5
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var  {объявление переменных}
  i:integer;  {счетчик для for}
  rk:integer;  {счетчик, количество рекурсий}
function Fib1(K:integer;var rk:integer):integer;  {объявление функции}
begin
  rk:=rk+1;  {увеличение счетчика количества рекурсий}
  if K>1 then  {проверка условия}
    Fib1:=Fib1(K-1,rk)+Fib1(K-2,rk)  {если истина, вычисление выражения, причем функция вызывает сама себя, но уже с другими параметрами}
  else 
    Fib1:=K;  {если ложно, результат функции равен [B]К[/B]}
end;
begin
  for i:=0 to 5 do begin  {объявление цикла for}
  rk:=0;  {начальное значение счетчика}
    writeln('№ ',i,' значение :',Fib1(i,rk),' к-во рекурсий:',rk);  {вывод строки}
  end;  {конец цикла for}
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2014, 17:16
Помогаю со студенческими работами здесь

Описать функцию целого типа, вычисляющую значение "двойного факториала"
Описать функцию Fact2(N) целого типа, вычисляющую значение "двойного факториала": N!! =...

Описать функцию getInt(Name,k) целого типа, возвращающую k-й элемент файла
очередная просьба о срочном и по максимуму простом решении этой задачи...( Описать функцию ...

Описать функцию SumRange (А, В) целого типа, находящую сумму всех целых чисел от А до В включительно
описать функцию SumRange (А, В) целого типа, находящую сумму всех целых чисел от А до В...

Описать функцию SumRange(A , B) целого типа, находящую сумму всех целых чисел от A до B включительно
Описать функцию SumRange (A , B ) целого типа , находящую сумму всех целых чисел от A до B...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru