1的阶乘加2的阶乘一直加到20的阶乘
答案:3 悬赏:30 手机版
解决时间 2021-01-13 16:14
- 提问者网友:爱唱彩虹
- 2021-01-12 17:52
1的阶乘加2的阶乘一直加到20的阶乘
最佳答案
- 五星知识达人网友:低音帝王
- 2021-01-12 18:04
这个数字一般数据类型肯定放不下~
大数运算
#include
int mul(int arr[],int n,int len)
{
int i,c=0;
for (i=0; i {
arr[i]=arr[i]*n+c;
c=arr[i]/10;
arr[i]%=10;
}
while (c!=0)
{
arr[i++]=c%10;
c/=10;
}
return i;
}
int add(int a[],int n,int b[],int m)
{
int i,c=0;
for (i=0; i {
a[i]+=b[i]+c;
c=a[i]/10;
a[i]%=10;
}
while (c!=0)
{
a[i]+=c;
c=a[i]/10;
a[i]%=10;
i++;
}
return i;
}
int main()
{
int i,a_len,b_len,a[1024],b[1024];
a_len=0;
for (i=0; i<1024; i++) a[i]=0;
b_len=1;
b[0]=1;
for (i=1; i<=20;i++)
{
b_len=mul(b,i,b_len);
a_len=add(a,a_len,b,b_len);
}
for (i=a_len-1; i>=0; i--)
printf("%d",a[i]);
printf("\n");
return 0;
}
大数运算
#include
int mul(int arr[],int n,int len)
{
int i,c=0;
for (i=0; i
arr[i]=arr[i]*n+c;
c=arr[i]/10;
arr[i]%=10;
}
while (c!=0)
{
arr[i++]=c%10;
c/=10;
}
return i;
}
int add(int a[],int n,int b[],int m)
{
int i,c=0;
for (i=0; i
a[i]+=b[i]+c;
c=a[i]/10;
a[i]%=10;
}
while (c!=0)
{
a[i]+=c;
c=a[i]/10;
a[i]%=10;
i++;
}
return i;
}
int main()
{
int i,a_len,b_len,a[1024],b[1024];
a_len=0;
for (i=0; i<1024; i++) a[i]=0;
b_len=1;
b[0]=1;
for (i=1; i<=20;i++)
{
b_len=mul(b,i,b_len);
a_len=add(a,a_len,b,b_len);
}
for (i=a_len-1; i>=0; i--)
printf("%d",a[i]);
printf("\n");
return 0;
}
全部回答
- 1楼网友:怀裏藏嬌
- 2021-01-12 20:07
请问你的算法是??
main () {
long a=1, sum=0;
int i;
for (i=1; i<=20; i++){
a *= i;
sum += a;
}
printf ("%ld\n", sum);
main () {
long a=1, sum=0;
int i;
for (i=1; i<=20; i++){
a *= i;
sum += a;
}
printf ("%ld\n", sum);
- 2楼网友:青尢
- 2021-01-12 19:12
1
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯