递归调用运行错误
计算Fibonacci 数列各项的平方和,即求F12+F22+F32+.....Fn2的值(Fibonacci数列是这样一列数:0,1,1,2,3,5,8、、、),下面是我使用的一个递归算法求的,编译没有错误,运行就出了问题,编译器显示...exe 已停止工作,这是哪里出了问题呢? #include<stdio.h>
#include<math.h>
long Add(int n);
long Fib(int n)
{
int f;
if(n==0)
f=0;
else if(n==1)
f=1;
else
f=Fib(n-1)+Fib(n-2);
return f;
}
long Add(int n)
{
int num;
if(n==0)
num=0;
else if(n==1)
num=1;
else
num=Add((int)pow(Fib(n-1),2))+Add((int)pow(Fib(n-2),2));
return num;
}
int main()
{
int n;
printf("Input n:\n");
scanf("%d",&n);
printf("%d",Add(n));
return 0;
}