请用C语言写一个程序,功能为求1+2!+3!+…+20!的和

如题所述

第1个回答  2012-08-12
#include <stdio.h>
#include <stdlib.h>

//给count赋值过大时,可能溢出.

long calculate_factorial_sum(int count) {
if(count <= 0) return -1L;
int ix = 1, cnt = 1;
long sum = 0L, num = 1L;
//外循环处理阶乘的求和
for(; ix <= count; ++ix) {
//内循环处理求解阶乘
for(; cnt <= ix; ++cnt) {
num *= cnt;
}
sum += num;
}
return sum;
}

int main(int argc, char *argv[])
{
long num = calculate_factorial_sum(4);
printf("result : %ld", num);
return 0;
}
第2个回答  2012-08-12
include<stdio.h> int main() int i,k=1,sum=0; { for(i=1;i<=20;i++) { k=k*i; sum=sum+k; } printef("%d/n",sum); return 0; }
第3个回答  2012-08-12
#include <stdio.h>

int main(void)
{
int sum;
int i, k, n = 20;//n表示最大阶乘数

sum = 1;
k = 1;
for (i = 2; i <= n; i++){
k *= i;
sum += k;
}
printf("%d\n", sum);

return 0;
}
第4个回答  推荐于2018-04-15
#include<stdio.h>
float pSum(int n)
{
float sum=0;
float pt=1;
for(int i=1;i<=n;i++)
{
pt*=i;
sum+=pt;
}
return sum;
}
void main()
{
int i=20;
float sum=pSum(i);
printf("%g\n",sum);
}本回答被网友采纳
第5个回答  2012-08-12
用递归方法最简单!!