编程计算1!+2!+3!+...+n!的值

#include <stdio.h>
#include <stdlib.h>
//因为定义的是整形,输入的数太大超出范围就会出问题了
int factorial(int n);
int main() {
    int n=0;
    printf("请输入n:\n");
    scanf("%d",&n);
    int sum=0;
    for (int i = 1; i <=n; i++) {
        sum+=factorial(i);
    }
    if(n<0){
        printf("请输入正整数");
    } else{
        printf("1!+...+%d!=%d",n,sum);
    }

    return 0;
}
//阶乘计算函数
int factorial(int n){
    if(n<0){
        printf("请输入正整数");
        exit(0);
    }//这部分好像没什么用,懒得改了,有大神请指点


    if(n==0)
        return 0;
    if(n==1)
        return 1;
    if(n>1){
        int sum=1;
        for (int i = 1; i <=n ; i++) {
            sum=i*sum;
        }
        return sum;
    }
}

运行结果

 

 

输入数值过大会出错

 

 


版权声明:本文为weixin_46046563原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。