用函数递归求斐波那契数列,发现数字一大就不能有结果了
#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去判断总是不相等,无限递归了
下边直接调用输出就行了,不用调用两次呀