我在C语言中遇到了数字过大的问题,想求1+1*2+......+1*2*...*100的个位数,可是无法求出。

2024-11-25 07:31:10
推荐回答(4个)
回答1:

你用大数阶乘办法吧,这是没有其它办法的。流行的32位int平台只能做到13!,64位的也只能做到20!;到100!肯定得用数组办法自行设计算法。

回答2:

#include
int n,o=0;
int fac(int a)
{
int n,m=1;
for(n=1;n<=a;n++) m=((m%10)*n)%10;
return m;
}
int main()
{
for(n=1;n<=100;n++) o=(o+fac(n))%10;
printf("%d",o);
return 0;
}

回答3:

把这么大数据先转换成字符串,再一个一个处理。

回答4:

常用数组模拟
比如存放数字12345678901234567890 共20位的一个数
可以定义 int num[5]={1234,5678,9012,3456,7890}来存放