C语言编程……求1!+2!+…+19!+20答案大于10的19次方,
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 05:12:35
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;
}