转载地址:
https://www.acwing.com/solution/content/31460/
N 的阶乘(记作 N!)是指从 1 到 N(包括 1 和 N)的所有整数的乘积。
阶乘运算的结果往往都非常的大。
现在,给定数字 N,请你求出 N! 的最右边的非零数字是多少。
例如 5!=1×2×3×4×5=120,所以 5! 的最右边的非零数字是 2。
输入格式
共一行,包含一个整数 N。
输出格式
输出一个整数,表示 N! 的最右边的非零数字。
数据范围
1≤N≤1000
输入样例:
7
输出样例:
4
代码如下:
#include <iostream>
using namespace std;
typedef long long LL;
int main()
{int n;cin>>n;LL res = 1;int d2 = 0,d5 = 0;for (int i = 1;i<=n;i++){int x = i;while(x%2==0) d2++,x/=2;while(x%5==0) d5++,x/=5;res=res*x%10;}for (int i = 0;i<d2-d5;i++){res= res*2%10;}cout<<res<<endl;
}