Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
lawreNz
1 / 1 / 0
Регистрация: 23.03.2013
Сообщений: 30
1

Написать рекурсивную функцию вычисления чисел Фибоначчи

14.11.2013, 00:22. Просмотров 1093. Ответов 3
Метки нет (Все метки)

Мне нужно написать рекурсивную функцию вычисления чисел Фибоначчи, основанную на рекуррентных формулах:

F(2n) = 2F(n + 1)F(n) − F(n)2 F(n)2 - это степень 2
F(2n + 1) = F(n + 1)F(n) + 2F(n)2 + ( − 1)n. ( − 1)n. - это в степени n
Вот мой код но он не работает, выдает переполнение стека.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
long int F(int n) {
    int k=0,i=0;
     for(i=0;i<2;i++)
     {
         k++;
          if (n==0) return 1;
            else 
                if (n==1) return 1;
                    else 
                        if(k%2==0)
                            return 2*F(n+1)*F(n)-F(n*n);
                    else
                            return F(n+1)*F(n)+2*F(n*n)+powf(-1,n);
     }
}
 
void main () {
 int n,k;
 setlocale(LC_ALL,"russian");
 printf("Введите число N ");
 scanf("%d",&n);
 if (n<0) {
  printf("Число должно быть не меньше 0!");
  getchar();
  exit (1);
 }
long int f;
 f = F(n);
 printf("Число Фибоначчи с номером %d = %d ",n,f);
 getchar();
 getch();
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 00:22
Ответы с готовыми решениями:

Написать рекурсивную функцию вычисления K-го члена последовательности Фибоначчи
написать рекурсивную функцию вычисления K-го члена последовательности Фибоначчи (1 и 2 члены равны...

Реализовать рекурсивную функцию вычисления н-ого числа из последовательности Фибоначчи по формуле
Реализовать рекурсивную функцию вычисления n-ого числа из последовательности Фибоначчи по формуле:...

Написать рекурсивную функцию вычисления факториала
3. Написать рекурсивную функцию вычисления факториала. Применить функцию для вывода значений...

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

Написать рекурсивную функцию для вычисления выражения
Помогите написать рекурсию, задание на прикрепленной картинке Правила форума

3
ПерС
431 / 356 / 322
Регистрация: 05.11.2013
Сообщений: 1,010
Записей в блоге: 6
Завершенные тесты: 1
14.11.2013, 08:12 2
не вникал, но что-то оч навороченная функция
вот эта не выдает
C++
1
2
3
4
5
long int fibo (int n) {
 if (n==0) return 0;
 else if (n==1) return 1;
 else return (fibo(n-1)+fibo(n-2));
}
а вообще не надо тут рекурсии... дурно и ни к чему... лучше как-то так
C++
1
2
3
4
5
6
7
8
9
long int fibo (int n) {
 long int f0=0,f1=1,f2=1;
 for (int i=0; i<n; i++) {
  f2=f1+f0;
  f0=f1;
  f1=f2;
 }
 return f2;
}
мда... и при переполнении размера стека его (стек) обычно можно увеличить в настройках компилятора... и тут вероятнее переполнение арифметическое (при вычислении fibo от большого числа) чем стек
0
lawreNz
1 / 1 / 0
Регистрация: 23.03.2013
Сообщений: 30
15.11.2013, 00:31  [ТС] 3
Мне в том то и дело надо сделать так как у меня в задании, это лаба
0
viktorius
2 / 2 / 3
Регистрация: 24.02.2013
Сообщений: 105
15.11.2013, 08:48 4
нужно сначала написать формулы в читаемом виде, здесь есть хороший редактор формул, а так задача пустяковая.
0
15.11.2013, 08:48
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2013, 08:48

Написать рекурсивную функцию для вычисления факториала с помощью цикла
Написать текст программы на языке Си, которая должна по введенным данным a и b посчитать...

Написать рекурсивную функцию вычисления количества цифр натурального числа
написать рекурсивную функцию вычисления количества цифр натурального числа

Написать рекурсивную функцию для вычисления индекса максимального элемента массива из n элементов
Не могу понять, как же написать рекурсию для нахождения максимального элемента массива и его индекс...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.