#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;
}
}
运行结果
输入数值过大会出错