永发信息网

用递归算法求斐波那契数列(1、1、2、3、5、8……)的第n个数的主要代码

答案:2  悬赏:50  手机版
解决时间 2021-02-06 15:55
  • 提问者网友:温旧梦泪无声
  • 2021-02-06 09:30
用递归算法求斐波那契数列(1、1、2、3、5、8……)的第n个数的主要代码
最佳答案
  • 五星知识达人网友:十鸦
  • 2021-02-06 10:39
int fib(int n)
{
if(n==1||n==0)
return 1;
else
return fib(n-1)+fib(n-2);
}
全部回答
  • 1楼网友:猎心人
  • 2021-02-06 11:15
#include  #include  typedef long long int int64; //方法1,递归法 int64 fibonacci(int n) { int64 sum; if(n<=0) { printf("参数值非法!\n"); exit(-1); //直接终止程序 } if(n==1 || n==2) return 1; else sum=fibonacci(n-1)+fibonacci(n-2); return sum; } //方法2,非递归法 int64 fibonacci2(int n) { int64 a,b,c; if(n<=0) { printf("参数值非法!\n"); exit(-1); //直接终止程序 } if(n==1 || n==2) return 1; a=b=1;  //对前两项的值初始化 n=n-2; //因为是从第3项开始记次数,所以减2 while(n > 0) { c=a+b; a=b; b=c; n--; } return c; } //测试主函数 int main() { int n; scanf("%d",&n); //输入n //printf("f(%d)=%lld\n",n,fibonacci(n)); printf("f(%d)=%lld\n",n,fibonacci2(n)); return 0; } //示例运行结果 f:\c_work>a.exe 5 f(5)=5 f:\c_work>a.exe 6 f(6)=8
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯