C语言递归求阶乘1-10的和

项目场景:

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语言函数调用的模型,递归调用时先从一个条件依次递推,触发结束条件后再依次往前回归到第一次调用;即完成整个递归过程

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页