zoukankan      html  css  js  c++  java
  • 剑指Offer(Java版)第十五题:打印1到最大的n位数

    /*
    打印1到最大的n位数
    */
    //一开始想到的是直接构造出最大数,然后逆序输出,把‘0’排除在外即可。看了一些网上的博客,要注意大叔情况,因此使用以下方法。
    public class Class15 {

    public void printNumber(int n){
    if(n <= 0){
    return;
    }
    char[] number = new char[n];
    for(int i = 0; i < 10; i++){
    number[0] = (char)(i + '0');
    printNumberMain(number, n, 0);
    }
    }
    //index表示判断是否打印的条件,如果与输入的指示相同则输出。
    //使用递归的方式来进行操作
    public void printNumberMain(char[] number, int length, int index){
    if(index == length - 1){
    print(number);
    return;
    }
    for(int i = 0; i < 10; i++){
    number[index + 1] = (char)(i + '0');
    printNumberMain(number,length,index + 1);
    }
    }
    //这里是关键,判断是否打印单个的'0'
    public void print(char[] number){
    boolean isBegin0 = true;
    int length = number.length;
    for(int i = 0; i < length; i++){
    if(isBegin0 && number[i] != '0'){
    isBegin0 = false;
    }
    if(!isBegin0){
    System.out.print(number[i]);
    }
    }
    if(!isBegin0){
    System.out.println();
    }
    }

    public void test(int n){
    printNumber(n);
    }

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Class15 c= new Class15();
    c.test(2);
    }

    }

  • 相关阅读:
    python注释中文
    python学习好文
    浅析python 的import 模块(转)
    Python解释器镜像源修改
    Python解释器安装
    Python和Python解释器
    计算机基础小结
    网络瓶颈效应
    编程语言分类
    子查询|视图事务
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12450436.html
Copyright © 2011-2022 走看看