zoukankan      html  css  js  c++  java
  • 打印1到最大的n位数-Java

    在练习剑指offer的时候,第12题打印1到最大的n位数的时候,想找个java版的,但大家要么用BigInteger做,要么给出其他的方法。我觉得要给就给最好的方法,下面是我自己参考C++代码写的java版的全排列方法。

    代码:

    public class Quanpaixu {
    
        public static void print1ToMaxOfNDigits(int n){
            if(n<=0) {
                return;
            }
            //生成相应位数大小的数组
            int[] number = new int[n];
            digui(number, n, 0);
    
        }
        //第二中方法实现,全排序实现
        public static void digui(int[] number,int length,int index){
            //判断是否到数组的最后索引位置
            if(index ==length){
                PrintNumber(number);
                return;
            }
            for(int i=0;i<10;i++){
                number[index]=i;
                digui(number, length, index+1);
            }
        }
    
        private static void PrintNumber(int[] number) {
            //标识第一个非0的节点
            boolean touFlag = true;
            for(int i=0; i<number.length; i++) {
                if(number[i]!=0 && touFlag) {
                    touFlag = false;
                }
                if(!touFlag) {
                    System.out.print(number[i]);
                }
            }
            //不打印0,从1开始打印
            if(!touFlag) {
                System.out.println();
            }
        }
        //main方法测试  
        public static void main(String[] args) {
            print1ToMaxOfNDigits(3);
        }
    }
    
  • 相关阅读:
    JS-15 (class)
    JS-14 (解构)
    AI CycleGAN
    AI GAN
    AI StarGAN
    AI VGG
    硬件 PCIe总线
    工具 docker
    MySql开启慢速查询日志
    AI StyleGAN
  • 原文地址:https://www.cnblogs.com/loren-Yang/p/7466117.html
Copyright © 2011-2022 走看看