[C语言]用递归算法编写一个程序求Fibonacci数列的第n项值
答案:3 悬赏:70
解决时间 2021-01-31 05:28
- 提问者网友:战魂
- 2021-01-30 08:10
[C语言]用递归算法编写一个程序求Fibonacci数列的第n项值
最佳答案
- 二级知识专家网友:人類模型
- 2021-01-30 09:09
#include
unsigned int Fibonacci(int n);
int main( void )
{
int i;
for(i = 1 ;i <= 20;i ++)
{
printf("%d\n",Fibonacci(i));
}
return 0;
}
unsigned int Fibonacci(int n)
{
if( n == 1 || n == 2) // 递归结束的条件,求前两项
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2); // 如果是求其它项,先要求出它前面两项,然后做和。
}
这种算法效率比较低
哪里不清楚可以Hi我
unsigned int Fibonacci(int n);
int main( void )
{
int i;
for(i = 1 ;i <= 20;i ++)
{
printf("%d\n",Fibonacci(i));
}
return 0;
}
unsigned int Fibonacci(int n)
{
if( n == 1 || n == 2) // 递归结束的条件,求前两项
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2); // 如果是求其它项,先要求出它前面两项,然后做和。
}
这种算法效率比较低
哪里不清楚可以Hi我
全部回答
- 1楼网友:持酒劝斜阳
- 2021-01-30 11:13
#include <stdio.h>
int fib(int n)
{
if( n == 1 || n == 2) return 1;
else return fib(n-1)+fib(n-2);
}
int main( void )
{
int i;
for(i = 1 ;i <= 20;i ++)
{
printf("%d\n",fib(i));
}
return 0;
}
int fib(int n)
{
if( n == 1 || n == 2) return 1;
else return fib(n-1)+fib(n-2);
}
int main( void )
{
int i;
for(i = 1 ;i <= 20;i ++)
{
printf("%d\n",fib(i));
}
return 0;
}
- 2楼网友:酒者煙囻
- 2021-01-30 10:06
int fib(){
int a[]= new int [60];
a[0]=a[1]=1;int j=0;
for(int i=2;i<60;i++){
a[i]=a[i-1]+a[i-2];
}
}
其他的罗嗦的部分你自己写啊,这个是那个递归函数了,最后输出a[]值就可以了,这种写法就是递归的方式,代码简单,运行效率不是很高
int a[]= new int [60];
a[0]=a[1]=1;int j=0;
for(int i=2;i<60;i++){
a[i]=a[i-1]+a[i-2];
}
}
其他的罗嗦的部分你自己写啊,这个是那个递归函数了,最后输出a[]值就可以了,这种写法就是递归的方式,代码简单,运行效率不是很高
参考资料:其他的罗嗦的部分你自己写啊,这个是主框架,最后输出a值就可以了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯