刚开始看到这个题的时候,我默认为求后面有几个零,(求10的质因子2,5),后来仔细看了一下求最右边的非零数字我就有点懵了。
https://www.acwing.com/video/2326/
看了老师的讲解
也是求2,5,但是思路不同的是,求2,5最少数量(后尾0的个数),然后再乘以剩余的2或者5
代码如下
#include<iostream>
#include<algorithm>
using namespace std;
int main(void)
{
int n;
int last=1;
long long sum2=0,sum5=0;
cin>>n;
for(int i=1;i<=n;i++)
{
int t=i;
while(t%2==0)
{
sum2++;
t/=2;
}
while(t%5==0)
{
sum5++;
t/=5;
}
last=last*t%10;
}
int k=min(sum2,sum5);
for(int i=1;i<=sum2-k;i++)
last=last*2%10;
for(int i=1;i<=sum5-k;i++)
last=last*5%10;
cout<<last;
}