你用大数阶乘办法吧,这是没有其它办法的。流行的32位int平台只能做到13!,64位的也只能做到20!;到100!肯定得用数组办法自行设计算法。
#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;
}
把这么大数据先转换成字符串,再一个一个处理。
常用数组模拟
比如存放数字12345678901234567890 共20位的一个数
可以定义 int num[5]={1234,5678,9012,3456,7890}来存放