首页 > 试题广场 >

阶乘末尾非零数字

[编程题]阶乘末尾非零数字
  • 热度指数:10865 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}给定一个正整数 n,记其阶乘为:


n! = 1 \times 2 \times 3 \times \dots \times n


\hspace{15pt}请你输出 n! 的十进制表示中,从右往左数第一个非零数字的数值。

输入描述:
\hspace{15pt}在一行上输入一个整数 n\left(1 \leqq n \leqq 10^7\right)


输出描述:
\hspace{15pt}输出一个整数,代表 n! 末尾第一个非零数字。
示例1

输入

6

输出

2

说明

n=6 时,6! = 720,末尾第一个非零数字为 2
示例2

输入

10

输出

8

说明

n=10 时,10! = 3\,628\,800,末尾第一个非零数字为 8
头像 1人2人3人
发表于 2025-07-18 08:47:47
import java.util.*; public class Main { static class Solution { public int lastNonZeroDigit(int n) { // n2表示因子2的个数,n5表示因子5的个数 展开全文
头像 Silencer76
发表于 2025-07-08 18:12:06
题目链接 HIGH3 阶乘末尾非零数字 题目描述 给定一个正整数 n,请求出 n! (n的阶乘) 的十进制表示中,从右往左数第一个非零的数字。 解题思路 这个问题的核心挑战在于 n! 的值会非常快地增长,对于稍大的 n(例如 n=20),其阶乘结果就会超出标准64位整型(long long)的存储范 展开全文
头像 _Bingbong
发表于 2024-12-31 01:22:12
解题思路 要找到 末尾的第一个非零数字,关键是理解: 末尾的0是由因子2和5相乘产生的 需要分别统计 中因子2和因子5的个数 其他因子相乘的结果对最后一个非零数有影响 具体步骤: 统计 中因子2和因子5的个数 计算去除这些因子后,其他数字相乘的最后一位 如果因子2比因子5多,需要补充乘以 展开全文
头像 丨阿伟丨
发表于 2025-08-28 16:15:37
题目链接 阶乘末尾非零数字 题目描述 给定一个正整数 ,记其阶乘为:。 请你输出 的十进制表示中,从右往左数第一个非零数字的数值。 输入: 一行一个整数 () 输出: 一个整数,代表 末尾第一个非零数字 解题思路 这道题要求我们计算 的最后一个非零数字。当 很大时,直接计算 会溢 展开全文
头像 ch1ld
发表于 2025-10-24 17:48:20
题意:求 末尾非零数 题解参考了前排大佬 丨阿伟丨 的代码 题意即求 注意到,任何一个偶数 乘 6 所得数的个位不变,为什么呢?我们考虑中国剩余定理 根据 那么 对于 的情况, 必然为偶数,因此 ,因此求一个偶数 模 10,即求 那么本题就可以这么做 注意 ,因此我们仅需考虑 展开全文
头像 玄骨
发表于 2025-10-23 19:42:22
#include<bits/stdc++.h> using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cin>>n; int n 展开全文
头像 bing糖雪狸
发表于 2025-10-23 08:58:21
问题分析 对于较小的 n(如 n ≤ 20),我们可以直接计算出 n! 的值并从后往前找第一个非零数字: long long factorial(long long n) { long long ans = 1; for (int i = 1; i <= n; ++i) { 展开全文
头像 Xiettt
发表于 2026-03-22 01:14:09
#include<bits/stdc++.h> using namespace std; using ui=unsigned int; using ll=long long; using ull=unsigned long long; using i128=__int128_t; us 展开全文
头像 在刷代码的ssr很坚定
发表于 2025-10-23 22:02:39
这里本人采取递归与记忆化递归来解决此题,多说无益请看代码:递归#include<bits/stdc++.h>using namespace std;long long solve(int n) { if (n == 0 || n == 1) return 1; long lo 展开全文
头像 牛客363602688号
发表于 2026-04-03 22:52:45
#include <algorithm> #include<bits/stdc++.h> using namespace std; const long long mod=10000000000; long long jiechen(int n) { long lon 展开全文