作业帮 > 综合 > 作业

C语言编程……求1!+2!+…+19!+20

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 10:49:56
C语言编程……求1!+2!+…+19!+20
答案大于10的19次方,
1!+2!+…+19!+20!已测试,计算器计算结果和程序计算结果一样,发图为证,请看图#include<stdio.h>long a[7]={0,0,0,0,0,0,1};long sum[7]={0,0,0,0,0,0,0};void jiecheng(int n){int i,j,temp;    for(i=0;i<6;i++) a[i]=0;    a[6]=1;for(i=1;i<=n;i++){for(j=6,temp=0;j>=0;j--){a[j]*=i;a[j]+=temp;temp=0;if(a[j]>=10000){temp=a[j]/10000;a[j]=a[j]%10000;}}}}void _sum(void){     int i,temp=0;     for(i=6;i>=0;i--){          sum[i]+=a[i];sum[i]+=temp;temp=0;if(sum[i]>=10000){temp=sum[i]/10000;sum[i]=sum[i]%10000;}    }}void  shuchu(){int i;for(i=0;!sum[i]&&i<7;i++);printf("%d",sum[i]);i++;while(i<7){if(sum[i]<1000){printf("0");     if(sum[i]<100){printf("0");if(sum[i]<10) printf("0");}}printf("%d",sum[i]);i++;}printf("\n");}int main(void){int  i;      for(i=1;i<=20;i++){ jiecheng(i);      _sum();      }shuchu();getchar();return 0;}