USACO3.2 Factorials(fact4)

        水題吧?有一個陷阱,不能僅僅保留結果的最後一位,例如14!的最後一位是2,計算2*15,最後一位非零數字是3,其實這是錯的,這裏由於n<=4220<10000,因此應該保留4位。ios

/*
ID:jzzlee1
PROB:fact4
LANG:C++
*/
//#include<iostream>
#include<fstream>
using namespace std;
ifstream cin("fact4.in");
ofstream cout("fact4.out");
int cal(int x)
{
	while(x%10==0)
		x/=10;
	return x>10000?x%10000:x;
}
int main()
{
	int n;
	cin>>n;
	int i,ans=1;
	for(i=2;i<=n;i++)
	{
		ans*=i;
		ans=cal(ans);
	}
	ans%=10;
	cout<<ans<<endl;
	return 0;
}
相關文章
相關標籤/搜索