已知f(1)=1,f(2)=2,当n≥3时,f(n)= f(n-1)+f(n-2),编程求f(100)的值,选择的算法为( ) A、解析法 B、

2025-04-28 15:04:00
推荐回答(2个)
回答1:

嵌套。函数里面调用它自己。
long f(int a)
{
if(a<1) return -1;
else if(a==1) return 1;
else if(a==2) return 2;
else return f(a-1)+f(a-2);
}

上面只是个形状,a<=0也写进去了,因为a<0,是没有结果的,返回值是-1,就是说这个情况。
不知道上面那个程序也不知道能出结果吗???你自己编个吧。就是那个思路。
小心,别陷入了死循环就行,就是说,一定有出套的时候,就是那个参数为1,和2的时候。如果参数小于1,那么就直接返回-1;
死循环程序就是,参数一直减下去,程序一直调用他本身。
补充一下:return 语句执行后,就跳出函数了。不会执行这个return后面的任何语句了。

回答2:

#include
main()
{
int a,n;
double sum=0.0;
scanf("%d",n);
for(a=1;a<=n;a++)
sum+=1/a;
printf("%f",sum);
}