使用递归和数组求斐波那契数列

来源:互联网 发布:ipad刷mac系统 编辑:程序博客网 时间:2024/06/05 00:07
//使用递归和数组求斐波那契数列#include <stdio.h>#define N 1024int a[N];int fib(int n){    if(n <= 1){        return a[n];    }else{        if(a[n] != -1){            return a[n];        }        //使用数组记录中间结果,避免重复计算,降低运行时间        a[n] = fib(n-1) + fib(n-2);         return a[n];    }}int main(){    for(int i=0; i<N; i++){        a[i] = -1;    }    a[0] = 0;    a[1] = 1;    int n = 3;    printf("Input Num:");    scanf("%d",&n);    int result = fib(n);    printf("fib(%d) = %d\n",n,result);    return 0;}/*    C:\test>a.exe    Input Num:46    fib(46) = 1836311903*/
0 0
原创粉丝点击