int sum(int n)
{ if(n<=0)
printf("data error\n");
if(n==1) return 1;
else return sum(n-1)+n;
}
n不是1 返回sum(n-1)+n,又进入到sum函数里参数为n-1,直到n等于1结束,返回对应的值
例如n=2 sum(2-1)+2
进入到sum(1) n=1返回1,这个1加上之前的2输出3
这是递归函数。
如果n>1,返回sum(n-1)+n,也就是sum(n)=sum(n-1)+n。
举例来说:当n=4的时候
n=4,执行else语句,也就相当于 sum(4) = sum(3)+4,再计算sum(3)
n=3,执行else语句,也就相当于 sum(3) = sum(2)+3,再计算sum(2)
n=2,执行else语句,也就相当于 sum(2) = sum(1)+2,再计算sum(1)
n=1,执行else if语句,返回1,也就是 sum(1)=1
然后从下往上带回去,就得到sum(4)的值