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);
        }
    }
    
  • 相关阅读:
    iOS中文API之UITouch详解
    iOS中文API之UIResponder介绍
    NSProxy
    NSObject
    Objective-C 简介
    【摘录】在Windows平台上使用Objective-C
    基于VM10+Win7安装Mac OSX10.11 El Capitan
    关于安装黑苹果
    insta经典滤镜下载
    GPUImage简单滤镜使用之色阶(三)
  • 原文地址:https://www.cnblogs.com/loren-Yang/p/7466117.html
Copyright © 2011-2022 走看看