已知二阶Fibonacci数列:
Fib(0)=0;若n=0
Fib(1)=1;若n=1
Fib(n)= Fib(n-1)+ Fib(n-2) 其他情况
定义递归和非递归函数求Fib(n)。
程序如下:
法一:递归方法
#include <stdio.h>
int Fib(int n)
{ int m;
if(n==0)m=0;
else if(n==1)m=1;
else m=Fib(n-1)+Fib(n-2);
return m;
}
void main()
{ int n;
printf(“请输入非负整数n:”);
scanf(“%d”,&n);
printf(“fib(n)=%d\n”,Fib(n));
}
法二:非递归函数
#include <stdio.h>
int Fib(int n)
{ int f0=0,f1=1,m,f;
if(n==0) return 0;
else if(n==1) return 1;
else
{ for (m=0;m<n-1;m++){f=f0+f1;f0=f1;f1=f;}
return f;
}
}
void main()
{ int n;
printf(“请输入非负整数n:”);
scanf(“%d”,&n);
printf(“fib(n)=%d\n”,Fib(n));
}
© 版权声明
部分文章来自网络,只做学习和交流使用,著作权归原作者所有,遵循 CC 4.0 BY-SA 版权协议。
THE END
暂无评论内容