剑指offer 12. 打印1到最大的n位数
2017-05-15 14:57
459 查看
// 题目:输入一个数n,打印1到最大的n位数中所有的数 // 解法:设立char型模拟数组,采用递归的方式,排列出所有的数,当index排列到最后一个数后就进行打印 public class Main { public static void main(String[] args) { printNum(2); } public static void printNum(int n) { if(n<=0){ return; } char[] num = new char ; for(int i = 0;i<n;i++){ //建立并初始化 num[i] = '0'; } for(int i = 0;i<=9;i++){ //设置第一位的值并递归 num[0] = (char)(i+'0'); printNumHelper(num,n,0); } } public static void printNumHelper(char[] num, int length, int index){ if(index == length-1){ //当index排列到最后一个数后就进行打印 printNumber(num); return; }else{ for(int i = 0;i<=9;i++){ //递归的为每一位数排列0-9 num[index+1] = (char)(i+'0'); printNumHelper(num,length,index+1); } } } public static void printNumber(char[] num){ //进行打印 boolean isZero = true; for(int i = 0;i<num.length;i++){ if(isZero == false){ System.out.print(num[i]); continue; } if(num[i] != '0'){ isZero = false; System.out.print(num[i]); } } if(isZero == false){ //如果打印了数就附加一个换行 System.out.println(); } } }
相关文章推荐
- 剑指Offer12:打印1到最大的n位数
- 剑指offer-3-面试12:打印1到最大的n位数
- 剑指offer_面试题12_打印1到最大的n位数(大数问题)
- 剑指Offer之打印1到最大的n位数(题12)
- 剑指offer面试题12——打印1到最大的n位数
- 剑指offer_面试题12_打印1到最大的n位数(大数问题)
- 剑指offer面试题[12]-打印1到最大的n位数
- 剑指offer 面试题12 打印1到最大的N位数
- 剑指OFFER || 打印从1到最大的N位数 12_Print1ToMaxOfNDigits.cpp
- [剑指offer][面试题12]打印1到最大的n位数
- 剑指Offer之面试题12:打印1到最大的N位数
- 剑指offer-12:打印1到最大的n位数
- 剑指offer-chapter3-面试题12-打印1到最大的n位数(java)
- 【剑指offer-Java版】12打印1到最大的n位数
- 【剑指offer】面试题12、打印 1 到最大的 n 位数
- 剑指Offer面试题12:打印1到最大的n位数 Java实现
- 剑指Offer系 4000 列-面试题12:打印1到最大的n位数
- 剑指offer编程题Java实现——面试题12打印1到最大的n位数
- 剑指offer面试题12-打印1到最大的n位数
- 剑指offer之面试题12打印1到最大的n位数