项目场景:
1.将递归求阶乘封装函数
2.求1!-10!的和
代码实现:
#include<stdio.h>
int jiecheng(int n){
if(n==0){ //递归正常结束
return 1;
}
return n*jiecheng(n-1);//递归调用
}
int main(){
int n=0;
int ret=0;
scanf("%d",&n);
for( int i=1;i<=n;i++){ //分别求1!到10!阶乘并相加求和
ret=ret+jiecheng(i);
}
printf("%d",ret);
return 0;
}
逻辑分析:
1.对于递归思想的理解,将一个复杂的问题分治成多个简单问题,然后再组合解决;
2.在阶乘的问题中,可以将n的阶乘看做n*(n-1)后再与(n-2)相乘,一直递推到乘1;
3.C语言函数调用的模型,递归调用时先从一个条件依次递推,触发结束条件后再依次往前回归到第一次调用;即完成整个递归过程