面试题 12: 打印1到最大的n位数
来源:互联网 发布:腾讯云域名建站教程 编辑:程序博客网 时间:2024/06/03 15:13
一. 题目
输入数字n,按顺序打印出从1到最大的n位十进制数.比如输入3,则打印出1,2,3一直到最大的3位数即999.
代码请到我的代码库中下载 Point2Offer
二. 代码
package ween_2;/**难度系数:**** * 剑指offer: 打印1到最大的n位数 * 方法:注意最大数是有多大?(字符串&递归) * 测试用例:功能测试(正数{121,1,0x7FFFFFFF}) * 特殊输入测试(0,负数) * @author dingding * Date:2017-6-22 14:00 * Declaration: All Rights Reserved! */public class No12 { public static void main(String[] args) { test1(); test2(); test3(); test4(); } //solution private static void print1ToMaxOfNDigits(int n){ if (n<1) { return; } char[] number = new char[n]; for (int i=0;i<10;i++){ number[0] = (char) (i+'0'); print1ToMaxOfNDigitsRecursively(number,n,0); } } //递归 private static void print1ToMaxOfNDigitsRecursively(char[] number, int length, int index) { if (index == length-1) { printNumber(number); return; } for (int i=0;i<10;++i){ number[index+1] = (char) (i+'0'); print1ToMaxOfNDigitsRecursively(number, length, index+1); } } //打印字符串,去除前面的0 private static void printNumber(char[] number) { boolean isBeginning0 = true; int length = number.length; for (int i=0;i<length;i++){ if (isBeginning0 && number[i]!='0') { isBeginning0 = false; } if (!isBeginning0) { System.out.print(number[i]); } } System.out.print("\t"); } /*==============测试用例===============*/ private static void test1() { print1ToMaxOfNDigits(1); System.out.println(); System.out.println("====================="); } private static void test2() { print1ToMaxOfNDigits(0); System.out.println(); System.out.println("====================="); } private static void test3() { print1ToMaxOfNDigits(-3); System.out.println(); System.out.println("====================="); } private static void test4() { print1ToMaxOfNDigits(2); System.out.println(); System.out.println("====================="); }}
有不妥当之处,麻烦告知:D
阅读全文
0 0
- 面试题12:打印1到最大的n位数
- 面试题12:打印1到最大的n位数
- 面试题12:打印1到最大的n位数
- 面试题12 打印1到最大的n位数
- 面试题12:打印1到最大的n位数
- 面试题12-打印1到最大的n位数
- 面试题12:打印1到最大的n位数
- 面试题12:打印1到最大的n位数
- 面试题12:打印1到最大的n位数
- 面试题12打印1到最大的n位数
- 面试题12:打印1到最大的n位数
- 面试题12:打印1到最大的n位数
- 面试题12:打印1到最大的n位数
- 面试题12:打印1到最大的n位数
- 面试题12:打印1到最大的n位数
- 面试题12:打印1到最大的n位数
- 【面试题12】打印1到最大的n位数
- 面试题12打印1到最大的n位数
- C语言学习之C与C++区别
- 使用链接改变某个标签中的某个属性的值
- axios全局请求参数设置,请求及返回拦截器
- 欢迎使用CSDN-markdown编辑器
- Java获取当前日期字符串
- 面试题 12: 打印1到最大的n位数
- Qt的4个图像类QImage/QPixmap/QBitmap/QPicture
- android中设置TextView的值\n不起作用
- maven 常用命令
- autolayout 入门(二)
- 数学(3) 各种数学分布,高斯,伯努利,二项,多项,泊松,指数,Beta,Dirichlet
- Brekeke SIP Server搭建
- Caffe中Layer注册机制
- Unity3d 滑动事件--向上、向下、向左、向右(PC好用但是手机滑动不是很理想)