#include<stdio.h>
int sum(int n);
int age(int age);
int plat_change(int number);
int main(int argc,constchar * argv[]) {
//exp1:计算1+2+3+4+5+6的值:使用递归函数:
//函数返回值是加的结果
int n =6;
int sumt =sum(n);
printf("sumt = %d\n",sumt);
//exp2:有五个孩子,直到第一个孩子的年龄是10岁,从第五个孩子起
//都比上一个孩子大2岁,求第五个孩子多大,使用递归:
//函数返回值是第五个孩子的年龄
int last =5;
int lastage =age(last);
printf("last_age = %d\n",lastage);
return0;
}
int sum(int n){
int sub =0;
//if为循环终止语句:
if (n==1) {
sub = n;
}
//循环语句:
else sub = n+sum(n-1);
//只有当返回值是sub时,循环语句才有效
return(sub);
}
int age(int n){
int next =0;
if(n ==1){
next =10;
}
else{
next =age(n-1)+2;
}
//age()的返回值是next,最后一次返回的是10而不再是next,要不然无法终止循环。
//也就是说,next =(next)+2;因为next = age(n-1)+2,
//所以next = (age(n-1)+2)+2;
return next;
}