思路分析:
谈到递归,我个人会联想到数学里面的通式。因为递归调用的函数的对应法则是相同的。例如这道题:f(x)=x²。这个就是函数通式,只不过把每个求得的结果进行累加求和即可。用户输入5的时候,会出现f(5)=5²,之后再进行x减一操作,执行f(4)=4²,最后将每个进行累加即可。
代码实现如下:
#include <stdio.h>
int main()
{
int sum=0,n;
printf("please input n:");
scanf("%d",&n);
sum=f(n);
printf("%d",sum);
return 0;
}
int f(int x)
{
int a,sum=0;
if(x == 1)
return 1;
else
a=x*x;//a存放的是单个的n²
sum=a+f(x-1);//sum存放的是累计的和
return sum;
}
运行效果如下:
江大真题gics