求阶乘之和c语言
时间: 2023-11-11 08:05:38 浏览: 123
以下是求阶乘之和的C语言代码:
```
#include <stdio.h>
int main() {
int n, i, j;
long long fact, sum = 0;
printf("请输入一个正整数:\n");
scanf("%d", &n);
for(i = 1; i <= n; i++) {
fact = 1;
for(j = 1; j <= i; j++) {
fact *= j;
}
sum += fact;
}
printf("1! + 2! + ... + %d! = %lld\n", n, sum);
return 0;
}
```
该程序首先从用户处输入一个正整数n,然后使用两个循环来计算1!到n!的和。外层循环从1到n依次遍历每个数字,内层循环计算该数字的阶乘。每计算出一个阶乘,就将其加到sum变量中。最后,程序输出1!到n!的和。
相关问题
C语言怎么求阶乘之和
在C语言中,计算一系列数字的阶乘之和,可以使用循环结构和递归来实现。这里提供一种简单的递归方法:
```c
#include <stdio.h>
unsigned long long factorial_sum(int n, unsigned long long sum = 1) {
if (n == 0 || n == 1)
return sum;
else
return factorial_sum(n - 1, sum * n);
}
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
// 避免溢出,因为阶乘增长非常快
unsigned long long result = factorial_sum(num, 1LL); // 使用long long防止溢出
printf("阶乘之和为:%llu\n", result);
return 0;
}
```
在这个程序中,`factorial_sum` 函数接收两个参数:当前的数字 `n` 和累加的阶乘结果 `sum`。递归地计算每个数字的阶乘,并将其加入到总和中。
p1009阶乘之和c语言
是求解p1009阶乘之和的C语言代码:
```c
#include <stdio.h>
int sum[2001];
int x[2001];
int main(void){
int N;
int i,j;//计数
int c;//进位
int flag=0;//表示首位前无效的0
scanf("%d",&N);
if(N==0){
printf("1\n");
return 0;
}
x[1]=1;
for(i=1;i<=N;i++){
//x=x*i
c=0;//进位为0
for(j=1;j<2000;j++){
x[j]=x[j]*i+c;
c=x[j]/10;
x[j]=x[j]%10;
}
//sum=sum+x
c=0;
for(j=1;j<2000;j++){
sum[j]=sum[j]+x[j]+c;
c=sum[j]/10;
sum[j]=sum[j]%10;
}
}
for(i=2000;i>=1;i--){
if(sum[i]!=0) flag=1;
if(flag==1) printf("%d",sum[i]);
}
printf("\n");
return 0;
}
```