Test_Java_递归练习(1000的阶乘所有零和尾部零的个数)
来源:互联网 发布:淘宝轮播代码超简单 编辑:程序博客网 时间:2024/06/06 13:23
需求:求出1000的阶乘所有零和尾部零的个数,不用递归做
import java.math.BigInteger;public class Test6 { /* * 需求:求出1000的阶乘所有零和尾部零的个数,不用递归做 */ public static void main(String[] args) { /*因为1000的阶乘远远超出了int的取值范围 * int result = 1; for (int i = 1; i < 1000; i++) { result = result * i; } System.out.println(result); //0 */ //demo1();//求1000的阶乘中所有的0 //demo2(); //获取1000的阶乘尾部有多少个0 } //获取1000的阶乘尾部有多少个0 public static void demo2() { BigInteger bi1 = new BigInteger("1"); for (int i = 1; i <=1000; i++) { BigInteger bi2 = new BigInteger(i+""); bi1 = bi1.multiply(bi2); //将bi1与bi2相乘的结果赋值给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)){ break; }else{ count++; } } System.out.println(count); } //求1000的阶乘中所有的0 public static void demo1() { BigInteger bi1 = new BigInteger("1"); for (int i = 1; i <=1000; i++) { BigInteger bi2 = new BigInteger(i+""); bi1 = bi1.multiply(bi2); //将bi1与bi2相乘的结果赋值给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); //472 }}
阅读全文
0 0
- Test_Java_递归练习(1000的阶乘所有零和尾部零的个数)
- 黑马程序员—基础—需求:求出1000的阶乘所有零和尾部零的个数,不用递归做
- 尾部的零,计算出n阶乘中尾部零的个数
- 计算n阶乘中尾部零的个数
- <LeetCode> 题2:n阶乘尾部零的个数
- Lintcode 尾部零的个数
- 阶乘的尾部有多少个零?
- 阶乘尾数零的个数
- 阶乘结果零的个数
- 阶乘尾数零的个数
- 阶乘末尾零的个数
- 设计一个算法,计算出n阶乘中尾部零的个数
- 设计一个算法,计算出n阶乘中尾部零的个数
- 设计一个算法,计算出n阶乘中尾部零的个数
- lintcode第二题 计算n阶乘中尾部零的个数
- 题目:尾部的零
- LintCode 尾部的零
- LintCode_尾部的零
- springmvc整合shiro做登陆权限控制,使用mongodb存储session
- 代理模式
- 详解Android项目中的三个gradle文件
- 268. Missing Number
- Maven学习(四)- 使用Maven构建Web项目-测试
- Test_Java_递归练习(1000的阶乘所有零和尾部零的个数)
- 4.31 leetcode -31populating-next-right-pointers-in-each-node
- Linux进程和计划任务
- ROS学习-创建/测试服务端和客户端
- linux读取ISO文件或是光驱的方法--挂载
- C语言的整型溢出问题
- php 二分算法
- jdk Linux的安装教程
- httpclient在明文传输数据时提示Illegal character的解决办法