拿到超范围的题目就是用数组存储权值来模拟算术
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[1000]={0};
a[0]=1;
for(int i=1;i<=100;i++)
{ int temp=0;
for(int j=0;j<1000;j++) //模拟乘法步骤,本位先乘,乘完之后加上后一位的进位,计算本位的进位,再循环
{
a[j]=a[j]*i;
a[j]=a[j]+temp;
temp=0;
if(a[j]>=10)
{ temp=a[j]/10;
a[j]=a[j]%10;
}
}
}
int location;
for(int i=999;i>=0;i--)
{ if(a[i]!=0)
{
location=i;
break;
}
}
int sum=0;
for(int i=location;i>=0;i--)
{
sum+=a[i];
}
cout<<sum<<endl;
return 0;
}
答案648