- 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]);
- }
来源: http://www.bubuko.com/infodetail-3061701.html