zoukankan      html  css  js  c++  java
  • AJPFX:不用递归巧妙求出1000的阶乘所有零和尾部零的个数

    package com.jonkey.test;

    import java.math.BigInteger;

    public class Test6 {

    /**
    * @param args
    *  需求:求出1000的阶乘所有零和尾部零的个数,不用递归做
    */
    public static void main(String[] args) {
    /*int result = 1;
    for(int i = 1; i <= 1000; i++) {
    result = result * i;
    }

    System.out.println(result);         //因为1000的阶乘远远超出了int的取值范围
    */
    //demo1();
    demo2();
    }

    public static void demo2() {         //获取1000的阶乘尾部有多少个零
    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);
    }

    public static void demo1() {         //求1000的阶乘中所有的零
    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);
    }

    }
       
    String[] arr1 = new String[4];
    arr1[0]="hong";
    arr1[1]="hei";
    arr1[2]="hua";
    arr1[3]="p";

    int[] arr2 = new int[13];
    for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 13; j++) {
    arr2[j] = j+1;

    System.out.println(""+arr1[i]+arr2[j]);
    }

  • 相关阅读:
    关于 CS1595 MS的知识库还是不全面,反正它给我的解决方法不能用,偶只有这样做了....
    被一贴,一个以前写的邮件发送的小类库。记住了,不是内裤
    [下载]活学活用DataGrid控件与ADO.NET
    不同浏览器透明度的写法
    通过文件读取oep值
    菜单
    CWnd::OnContextMenu函数(右键单击弹出快捷菜单)
    poj 3349(hash)
    poj 3009(dfs+回溯 模拟)
    poj 3026 (bfs+prim)
  • 原文地址:https://www.cnblogs.com/AJPFX/p/10879616.html
Copyright © 2011-2022 走看看