博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
打印从 1 到最大的 n 位数
阅读量:4212 次
发布时间:2019-05-26

本文共 779 字,大约阅读时间需要 2 分钟。

题目描述

输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数即 999。

解题思路

由于 n 可能会非常大,因此不能直接用 int 表示数字,而是用 char 数组进行存储。

使用回溯法得到所有的数。

 

public void print1ToMaxOfNDigits(int n) {    if (n <= 0)        return;    char[] number = new char[n];    print1ToMaxOfNDigits(number, 0);}private void print1ToMaxOfNDigits(char[] number, int digit) {    if (digit == number.length) {        printNumber(number);        return;    }    for (int i = 0; i < 10; i++) {        number[digit] = (char) (i + '0');        print1ToMaxOfNDigits(number, digit + 1);    }}private void printNumber(char[] number) {    int index = 0;    while (index < number.length && number[index] == '0')        index++;    while (index < number.length)        System.out.print(number[index++]);    System.out.println();}

 

转载地址:http://idkmi.baihongyu.com/

你可能感兴趣的文章
MySQl备份恢复策略(完全+增量备份策略)
查看>>
VBS发送邮件
查看>>
锁的兼容性
查看>>
解决mysqldump备份报错:SET OPTION SQL_QUOTE_SHOW_CREATE=1
查看>>
mysqldump参数详细说明
查看>>
mysqldump备份及结合binlog日志恢复的全过程
查看>>
SQL Server 查找占用CUP内存的SQL
查看>>
ms sql server缓存清除与内存释放
查看>>
怎样使用命令来结束进程
查看>>
三款免费实用的本地文件夹同步/备份软件推荐 (SyncToy/FreeFileSync/Compare Advance)
查看>>
查找库中某个表的字段情况
查看>>
CREATE TABLE A LIKE B
查看>>
bs调用另一个vbs的函数
查看>>
mysql的“Got error 28 from storage engine”错误
查看>>
jdk安装
查看>>
存档数据迁移
查看>>
查看表对应的文件组
查看>>
压缩表
查看>>
SQL Server 分布式事务
查看>>
存在防火墙时MSDTC的运行配置
查看>>