蓝桥杯(算法训练 P0505)

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T512
题解:每次累乘前去掉末尾的0,值得注意的时候得到的值要保留在4左右,因为可能会出现一个单数去乘出现末尾为0的情况
代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	long long int n,sums,ans;
	while(cin>>n)
	{
		sums=1;
		for(int i=1;i<=n;i++)
		{
			sums=sums*i;
			ans=sums%10;
			while(ans==0)
			{
				sums/=10;
				ans=sums%10;
			}
			sums%=10000;  //为了防止一个单数乘以末尾为0的情况 
		}
		cout<<sums%10<<endl;
	}
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_39905917/article/details/87861578