• 剑指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);
    }

    }

  • 相关阅读:
    Linux 下基础命令
    jquery
    系统运维
    jmeter响应断言
    测试方案和测试报告、需求变更控制
    Fiddler抓包12-AutoResponder返回本地数据(mock)
    Fiddler抓包11-HTTPS证书Actions无法导出问题
    Fiddler抓包10-会话框添加查看get与post请求类型
    Fiddler抓包9-保存会话(save)
    Fiddler抓包8-打断点(bpu)
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12450436.html
Copyright © 2020-2023  润新知