请问这两个斐波拉契程序哪个好?
#include <stdio.h>int aaa(int);
int main()
{
int N, x;
scanf("%d",&N);
x = aaa(N);
printf("%d\n",x);
return 0;
}
int aaa(int n)
{
int f1, f2;
f1=0;
f2=1;
if(n==0)
return f1;
else if(n==1)
return f2;
else
return aaa(n-1)+aaa(n-2);
}
第二个:#include <stdio.h>
int KA(int a)
{
if(a == 0)
return 0;
else if(a == 1)
return 1;
else
return a = a - 1 +a;
}
int main()
{
int N;
scanf("%d", &N);
N = KA(N);
printf("%d\n",N);
return 0;
}哪个比较好。感觉第一个比较复杂。
第二个程序不是斐波拉契程序,是求奇数的程序。
第一个递归效率太低, 建议用非递归
页:
[1]