您的位置:首页 > 职场人生

微软面试100题-65

2016-05-02 23:18 295 查看

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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: