末尾0的个数

本文介绍了一种计算任意正整数n的阶乘(n!)末尾0数量的方法。核心思路在于计算5的倍数及其幂次在n!中的出现次数,因为这决定了末尾0的数量。通过迭代除以5并累加商数即可得到答案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2

输入描述:

输入为一行,n(1 ≤ n ≤ 1000)

输出描述:

输出一个整数,即题目所求
示例1

输入

10

输出

2

 1 import java.util.Scanner;
 2 /**
 3  *  末尾0 的个数  
 4  *   主要就是求 有几个 2*5
 5  *   而2 总是充足的  就是求 5 的个数
 6  *   5、10 15 等一般含有一个5  而25 75 100等含有多个五
 7  * @author Dell
 8  */
 9 public class Main {
10 static public  long f(long n) {
11     long count = 0;
12     while(n>=5) {
13     n = n/5;
14     count+=n;    
15     }
16     return count;
17 }
18 public static void main(String[] args) {
19 Scanner sc =new Scanner(System.in);
20 long n  = sc.nextLong();
21 long count = f(n);
22 System.out.println(count);
23 }
24 }

 

转载于:https://www.cnblogs.com/the-wang/p/8981254.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值