微软面试100题-65
2016-05-02 23:18
295 查看
65.输出1到最大的N位数(运算)
题目:输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,
则输出1、2、3一直到最大的3位数即999。
分析:这是一道很有意思的题目。看起来很简单,其实里面却有不少的玄机。
65.输出1到最大的N位数(运算)
题目:输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,
则输出1、2、3一直到最大的3位数即999。
分析:这是一道很有意思的题目。看起来很简单,其实里面却有不少的玄机。
package com.algo.ms; public class PrintBit { public static void main(String[] args) { // TODO Auto-generated method stub int num = 6; byte[] res = new byte[num]; PrintBit p = new PrintBit(); while(true){ p.addOne(res); p.printRes(res); // System.out.println(res.toString()); if(p.isMax(res)){ break; } } } public void printRes(byte[] res){ for(int i = res.length - 1; i >= 0 ; i--){ System.out.print(res[i]); } System.out.println(); } public void addOne(byte[] res){ int temp; for(int i = 0; i < res.length ; i++){ temp = res[i]; res[i]++; if(res[i] == 10){ res[i] = 0; }else{ break; } } } public boolean isMax(byte[] res){ for(int i = res.length -1; i >= 0; i--){ if(res[i] != 9){ return false; } } return true; } }