自我感觉方法没什么错误 可事实就是错了 忘高手指点
题目是:求Fibonacci数列的第i项值数列:0,1,1,2,3,5,8,13,21.......
下面是我自己觉得能解决这个问题的算法 但运行结果都是0,麻烦高手指点一下,思路上哪里出了毛病,谢谢 呵呵
#include<stdio.h>
long fibonacci(int n)
{
int i;
if(n==0||n==1)
i=n;
else
i=fibonacci(n-1)+fibonacci(n-2);
return i;
}
main()
{
int x=0;
long f;
f=fibonacci(x);
scanf("%d",&x);
printf("fabonacci(%d)=%d\n",x,f);
}
----------------解决方案--------------------------------------------------------
当然是0啦,意料中的结果……
----------------解决方案--------------------------------------------------------
你自己看看是什么时候对x赋值的,又是什么时候调用函数的………………
----------------解决方案--------------------------------------------------------
have a try
#include<stdio.h>long fibonacci(int n)
{
int i;
if(n==0||n==1)
i=n;
else
i=fibonacci(n-1)+fibonacci(n-2);
return i;
}
main()
{
int x=0;
long f;
scanf("%d",&x);
f=fibonacci(x);
printf("fabonacci(%d)=%d\n",x,f);
}
这样可以了,先输入X,再调用函数!
----------------解决方案--------------------------------------------------------
回复 5# 的帖子
谢谢了 问题搞明白了 就是调用函数和输入x得顺序问题 谢谢了 呵呵 ----------------解决方案--------------------------------------------------------