求1000的阶乘尾部0的个数
第一种方法:
算出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的个数相关推荐
- 整数阶乘尾部0的个数
求解整数阶乘尾部0的个数主要是算出有多少个5及其倍数,因为这些数与偶数相乘会产生0,以100!的阶乘举例 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 ...
- 求n的阶乘末尾0的个数
输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2. 思路:末尾0的个数就是指这个数总共有几个10因子,而10又能表示成2和5的乘积.假 ...
- 阶乘末尾 0 的个数
整数区间内整数的因子的个数 如求 100 的阶乘末尾 0 的个数: 思路:一个数 n 的阶乘末尾有多少个 0 取决于从 1 到 n 的各个数的因子中 2 和 5 的个数((2, 5) 构成的对的个数) ...
- Python_计算一个数的阶乘并统计尾部0的个数
def getNum(num):# 计算阶乘result = 1for i in range(1, num+1):result *= i# 统计尾部0的个数str1 = str(result)str2 ...
- 求一个数的阶乘中0的个数
求一个数的阶乘中0的个数 连续几天产出为负,再不写点东西没法交代了... public class The_number_of_0_in_FactorialN {public static void ...
- 蓝桥杯中的阶乘(求1000的阶乘)
首先这个题,它是求1000的阶乘,他最后的值太大了,以至于不能用int ,long long int 来求.那要怎求呢.那肯定是用最简单的数组来求鸭,用数组来代表它的每一个位. #include &l ...
- 滴滴2017校园招聘编程题——阶乘末尾0的个数
1.题目如下图所示: 2.分析: 这个题目描述的很简单,思路看似也很清晰,我们第一想到的肯定就是正常计算和统计--先计算N!阶乘的结果,然后统计结果末尾0的个数.看似这是一个很好的也很 ...
- C++版本计算n阶乘末尾0的个数原理讲解及代码实现
C++版本计算n阶乘末尾0的个数原理讲解及代码实现 /*! * Copyright (c) 2020,ZYF. * All Rights Reserved. * * \file Factorial.c ...
- 对一个正整数n,求出n!中末尾0的个数。
对一个正整数n,求出n!中末尾0的个数. 输入 输入有若干行.每一行上有一个整数T,是测试数据组数,接着有T行,每一行包含一个确定的正整数n(n≤1000000000). 输出 对输入行中的每一个数据 ...
最新文章
- linux回调函数的使用
- struct sockaddr与struct sockaddr in struct sockaddr un的区别和联系
- Mybatis中的attempted to return null from a method with a primitive return type (int).异常
- python 服务端框架_GitHub - edisonlz/fastor: Python服务端开发框架-极易上手,超出你的想象!...
- mysql循环遍历获取_mysql存储过程之循环遍历查询结果集
- 按钮先调用页面JS,JS成功才调用后台代码
- JavaWeb初级篇-HttpPost使用教程
- Apizza-响应json数据上设置浮动注释
- python实现杨辉三角
- python- 机器人抓取谷歌地图数据
- 德勤财务机器人正式上岗,工作视频曝光,效率惊人
- 轩小陌的Python笔记-day03 Python基础
- Google IO 2018开发者大会:Android P
- Unity2021 Inventory(背包)系统学习记录
- 微信分享网页时自定义标题、描述和图片
- Linux centos7.6 安装elasticsearch8.x (es8) 教程
- 获取钉钉企业部门用户信息
- python 散点图
- webpack-dev-server的代理(proxy)
- JAVA简易控制台选择题答题,改自书上代码
热门文章
- 青岛智慧城市建设以人为本 勾勒未来图景
- php如何生成一年的日历表_html - PHP如何生成一个指定年份一整年的日历
- element ui 图片加载失败_element图片懒加载的问题
- Codewars一些积累No.3 从罗马数字编码器来初探string的实用用法
- 5分钟搞定100%正确的产品工艺单
- JDK版本切换---JDK9.0版本切换至JDK1.8
- 两个年轻人的神州泰岳 独斗IBM与惠普 理财周报记者 吴非/文
- vm虚拟机的中文版安装
- 二维码加密解密工具——优密(手机版)正式上线!
- 国际商业美术设计师阿里云开发首页