luogu1134 阶乘问题
时空限制 1000ms/128MB
题目描述
也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如:12!=1×2×3×4×5×6×7×8×9×10×11×12=479,001,60012。12的阶乘最右边的非零位为6。
写一个程序,计算N(1≤N≤50,000,000)阶乘的最右边的非零位的值。注意:10,000,000!有2499999个零。
输入
仅一行包含一个正整数N。
输出
一个整数,表示最右边的非零位的值。
输入样例
12
输出样例
6
代码
#include<iostream>
using namespace std;
int main(){
int n;
long long f=1;
cin>>n;
for (int i=1; i<=n; ++i){
f *= i;
while (f%10==0) f/=10;
f %= 100000000;
}
cout<<f%10<<endl;
return 0;
}