斐波那契数列的代码运行结果

用函数递归求斐波那契数列,发现数字一大就不能有结果了

#include
#include
int main()
{
    double Fibonacci(double a);//声明Fibonacci函数
    int n = 0;
    scanf_s("%d", &n);
    Fibonacci(n);//调用Fibonacci函数
    printf("%.0f\n", Fibonacci(n));
    system("pause");
    return 0;

}
double Fibonacci(double a)//定义Fibonacci函数
{
    double result = 0;
    if (a == 1 || a == 2) {
        result = 1;
    }
    else {
        result = Fibonacci(a - 1) + Fibonacci(a - 2);
    }
    return(result);
}

算加法别用double型,用long long int
double型有精度误差,最后你跟1和2去判断总是不相等,无限递归了

下边直接调用输出就行了,不用调用两次呀

img