计算第n个斐波那契数(递归,非递归)

扶醉桌前 提交于 2019-11-29 15:43:09

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

递归:
int Fibo(int n){
    if (n <= 2) {
        return 1;
    }
    else {
        return(Fibo(n - 2) + Fibo(n - 1));
    }
}

int main(){
    int n;
    scanf("%d", &n);
    printf("第%d个斐波那契数为:%d\n", n,Fibo(n));
    system("pause");    
    return 0;
}

 

 

非递归:

int main(){
    int a = 1;
    int b = 1;
    int c = 1;
    int n;
    printf("请输入一个数: ");
    scanf("%d", &n);
    for (; n > 2; n--) {
        c = a + b;
        b = a;
        a = c;
    }
    printf("它的斐波那契数为:%d", c);
    system("pause");
    return 0;
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!