第一种方法:

算出1000!中所有0的个数:

/***求1000!中所有的0*/private static void demo1() {BigInteger bi1 = new BigInteger("1");for (int i = 1; i <= 1000; i++) {BigInteger bi2 = new BigInteger(i + "");bi1 = bi1.multiply(bi2);}//System.out.println(bi1);String str = bi1.toString();  //获取字符串表现形式int count = 0;for (int i = 0; i < str.length(); i++) {//通过索引获取每一个字符if('0' == str.charAt(i)) {      //如果字符串中出现了0字符count++;                    //计数器+1}}System.out.println(count);}

算出1000!中尾部0的个数:

用reverse将1000!的得数反转

public static void main(String[] args) {//demo1();/***获取1000!尾部的0的个数 */BigInteger bi1 = new BigInteger("1");for (int i = 1; i <= 1000; i++) {BigInteger bi2 = new BigInteger(i + "");bi1 = bi1.multiply(bi2);}//System.out.println(bi1);String str = bi1.toString();  //获取字符串表现形式StringBuilder sb = new StringBuilder(str);str = sb.reverse().toString();int count = 0;for (int i = 0; i < str.length(); i++) {if('0' != str.charAt(i)) {      //遇到第一个不是0的字符时break;                      //跳出循环}else {count ++;}}System.out.println(count);





第二种方法: 递归
/***用递归求1000!尾部0的个数** 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100...1000                 1000/5 = 200* 5*5*1  5*5*2  5*5*3  5*5*4  5*5*5  5*5*6  5*5*7  5*5*8  5*5*9...                    200/5 = 8* 5*5*5*1  5*5*5*2  5*5*5*3  5*5*5*4  5*5*5*5  5*5*5*6  5*5*5*7  5*5*5*8                8/5 = 1* 5*5*5*5*/public static void main(String[] args) {System.out.println(fun(1000));}public static int fun(int num) {if(num > 0 && num < 5) {return 0;}else {return num / 5 + fun(num / 5);}}

												

求1000的阶乘尾部0的个数相关推荐

  1. 整数阶乘尾部0的个数

    求解整数阶乘尾部0的个数主要是算出有多少个5及其倍数,因为这些数与偶数相乘会产生0,以100!的阶乘举例 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 ...

  2. 求n的阶乘末尾0的个数

    输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2. 思路:末尾0的个数就是指这个数总共有几个10因子,而10又能表示成2和5的乘积.假 ...

  3. 阶乘末尾 0 的个数

    整数区间内整数的因子的个数 如求 100 的阶乘末尾 0 的个数: 思路:一个数 n 的阶乘末尾有多少个 0 取决于从 1 到 n 的各个数的因子中 2 和 5 的个数((2, 5) 构成的对的个数) ...

  4. Python_计算一个数的阶乘并统计尾部0的个数

    def getNum(num):# 计算阶乘result = 1for i in range(1, num+1):result *= i# 统计尾部0的个数str1 = str(result)str2 ...

  5. 求一个数的阶乘中0的个数

    求一个数的阶乘中0的个数 连续几天产出为负,再不写点东西没法交代了... public class The_number_of_0_in_FactorialN {public static void ...

  6. 蓝桥杯中的阶乘(求1000的阶乘)

    首先这个题,它是求1000的阶乘,他最后的值太大了,以至于不能用int ,long long int 来求.那要怎求呢.那肯定是用最简单的数组来求鸭,用数组来代表它的每一个位. #include &l ...

  7. 滴滴2017校园招聘编程题——阶乘末尾0的个数

    1.题目如下图所示: 2.分析:         这个题目描述的很简单,思路看似也很清晰,我们第一想到的肯定就是正常计算和统计--先计算N!阶乘的结果,然后统计结果末尾0的个数.看似这是一个很好的也很 ...

  8. C++版本计算n阶乘末尾0的个数原理讲解及代码实现

    C++版本计算n阶乘末尾0的个数原理讲解及代码实现 /*! * Copyright (c) 2020,ZYF. * All Rights Reserved. * * \file Factorial.c ...

  9. 对一个正整数n,求出n!中末尾0的个数。

    对一个正整数n,求出n!中末尾0的个数. 输入 输入有若干行.每一行上有一个整数T,是测试数据组数,接着有T行,每一行包含一个确定的正整数n(n≤1000000000). 输出 对输入行中的每一个数据 ...

最新文章

  1. linux回调函数的使用
  2. struct sockaddr与struct sockaddr in struct sockaddr un的区别和联系
  3. Mybatis中的attempted to return null from a method with a primitive return type (int).异常
  4. python 服务端框架_GitHub - edisonlz/fastor: Python服务端开发框架-极易上手,超出你的想象!...
  5. mysql循环遍历获取_mysql存储过程之循环遍历查询结果集
  6. 按钮先调用页面JS,JS成功才调用后台代码
  7. JavaWeb初级篇-HttpPost使用教程
  8. Apizza-响应json数据上设置浮动注释
  9. python实现杨辉三角
  10. python- 机器人抓取谷歌地图数据
  11. 德勤财务机器人正式上岗,工作视频曝光,效率惊人
  12. 轩小陌的Python笔记-day03 Python基础
  13. Google IO 2018开发者大会:Android P
  14. Unity2021 Inventory(背包)系统学习记录
  15. 微信分享网页时自定义标题、描述和图片
  16. Linux centos7.6 安装elasticsearch8.x (es8) 教程
  17. 获取钉钉企业部门用户信息
  18. python 散点图
  19. webpack-dev-server的代理(proxy)
  20. JAVA简易控制台选择题答题,改自书上代码

热门文章

  1. 青岛智慧城市建设以人为本 勾勒未来图景
  2. php如何生成一年的日历表_html - PHP如何生成一个指定年份一整年的日历
  3. element ui 图片加载失败_element图片懒加载的问题
  4. Codewars一些积累No.3 从罗马数字编码器来初探string的实用用法
  5. 5分钟搞定100%正确的产品工艺单
  6. JDK版本切换---JDK9.0版本切换至JDK1.8
  7. 两个年轻人的神州泰岳 独斗IBM与惠普 理财周报记者 吴非/文
  8. vm虚拟机的中文版安装
  9. 二维码加密解密工具——优密(手机版)正式上线!
  10. 国际商业美术设计师阿里云开发首页