C语言编程……求1!+2!+…+19!+20答案大于10的19次方,

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 16:40:59
C语言编程……求1!+2!+…+19!+20答案大于10的19次方,

C语言编程……求1!+2!+…+19!+20答案大于10的19次方,
C语言编程……求1!+2!+…+19!+20
答案大于10的19次方,

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;

}