(C语言)循环与递归求斐波那契数

来源:互联网 发布:美工培训讲师简介 编辑:程序博客网 时间:2024/05/23 12:57
#include <stdio.h>long Fibonacci_loop(int n);long Fibonacci_rec(int n);int main(){        int n;        printf("Enter a number:\n");        scanf("%d",&n);        printf("loop Fibonacci:%ld\n",Fibonacci_loop(n));        printf("recursion Fibonacci:%d\n",Fibonacci_rec(n));        return 0;}long Fibonacci_loop(int n){        int i;        long sum,sum1,re;        if(n<=2)                return 1;        for(sum=1,re=1,sum1=1,i=1;i<=(n-2);i++)        {                re=sum;                sum=sum1+sum;                sum1=re;        }                return sum;}long Fibonacci_rec(int n){        if(n>2)                return Fibonacci_rec(n-1)+Fibonacci_rec(n-2);        else                return 1;}

循环函数原创,递归书上代码。

当n过大时,递归部分调用过多变量(2的n-1次方),系统会占用大量内存,运行较慢。

阅读全文
0 0
原创粉丝点击