题目描述
首先我们来看 比如 1200*7=8400 那么末尾非0就是数字4,请问1200后的00乘7对我们需要的4有影响吗?答案是没有影响
12乘7=84,0乘7上只会增加位数而已,那么我们在计算阶乘的时候可以不断去除阶乘结果的末尾0,另外比如10000024乘5=
50000120,对末尾的影响其实只有后面几位数那么在计算时我们只储存后面几位数相乘的结果
C++ 代码
#include<iostream>
using namespace std;
int main()
{
int n;cin>>n;
long long int sum=1;
for(int i=1;i<=n;i++)
{
sum=(sum%1000)*i;
while(1)//删去末尾0
{
int x=sum%10;
if(x!=0)break;
else sum/=10;
}
}
while(sum)
{
int x=sum%10;
if(x!=0)
{
cout<<x;
return 0;
}
sum/=10;
}
return 0;
}