两个技巧
1. 除去乘数末尾的0
2. re = re % 100000至少要这个数字才能保证结果准确?
#include <iostream>
#include <sstream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <string>
#include <vector>
#include <set>
#include <cctype>
#include <algorithm>
#include <cmath>
#include <deque>
#include <map>
using namespace std;
///
#define INF 0xffffff7
#define maxn 2000
///
int clear_zero(int a)
{
while(a % 10 == 0)
{ a=a/10;
}
return a;
}
int main()
{
///
int num;
while(cin>>num)
{
int re=1;
int tmp;
for(int i=1;i<=num;i++)
{
tmp=i;
if(tmp != 0) tmp = clear_zero(tmp);
re = re * tmp;
if(re != 0) re=clear_zero(re);
re = re % 100000;
}
printf("%5d -> %d\n", num, re % 10) ;
}
///
return 0;
}