68,698
社区成员




把f(--n)改成f(n-1)才能输出1~n的和,否则算出的是1到n-1的和,为什么会这样TAT
#include<stdio.h>
int f(int);
int main(){
int n;
printf("n=");
scanf("%d",&n);
printf("sum=%d\n",f(n));
return 0;
}
int f(int n){
if(n>0) {printf("%d\n",n);return n+f(--n);}
else return 0;
}
gpt追求拟人,这次拟的是一位犯错误的新手,这效果相当赞。
因为--n会修改n的值啊。
你要想return,就得先算出n+f吧
你要想算n+f就得先算f吧
你一算f就得先--n啊
n就变成4了
所以你算的是4+f(4)啊
没有5被累加的动作啊