题目描述
阶乘的定义如下:N!=1×2×3×...×N-1×N
例如,12!=1×2×3×4×5×6×7×8×9×10×11×12=479001600
最右的非0位是6,后面有2个0。
写一个程序计算N!最右非0位和末尾0的个数。
输入输出格式
输入格式:
一行,一个整数N。(1≤N≤1000000)
输出格式:
一行,输出2个整数:最右非0位,末尾0的个数。
输入输出样例
输入样例:
12
输出样例:
6 2
#include<iostream> using namespace std; int n,t,j; long long ans=1; int main() { cin>>n; for (int i=1;i<=n;i++) { ans*=i; while(ans%10==0) ans/=10; ans%=100000000; } cout<<ans%10<<" "; ans=0; for (int i=1;i<=n;i++) { int j=i; while(j%5==0) { t++; j/=5; } } cout<<t<<endl; return 0; }