当前位置: 代码迷 >> C语言 >> 自我感觉方法没什么错误 可事实就是错了 忘高手指点
  详细解决方案

自我感觉方法没什么错误 可事实就是错了 忘高手指点

热度:134   发布时间:2008-05-12 21:20:10.0
自我感觉方法没什么错误 可事实就是错了 忘高手指点
题目是:求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得顺序问题   谢谢了   呵呵
----------------解决方案--------------------------------------------------------
  相关解决方案