剑指offer_12(打印出从1到最大n位数)
2017-03-17 16:28
246 查看
题意:给定一个整数n,打印出从1到最大n位数。
思路:一般解法很简单,但是基于效率考虑,选择位运算来解答。
代码:
思路:一般解法很简单,但是基于效率考虑,选择位运算来解答。
代码:
package MianShiTi_12; public class MianShiTi_12 { public static boolean isOverflow(int[] number) throws Exception { if(number.length < 1){ throw new Exception("invalid length of number"); } boolean isOverflow = false; //进位 int carry = 0; for(int i = number.length - 1; i >= 0 ;i--){ int sum = number[i] + carry; if(i == number.length - 1){ sum++; } if(sum >9 ){ if(i == 0){ isOverflow = true; }else{ carry = 1; number[i] = 0; sum = 0; } }else{ number[i] = sum; break; } } return isOverflow; } public static void print(int[] number) { boolean isBegining = true; for(int i = 0; i< number.length ; i++){ if(isBegining && number[i] != 0){ isBegining = false; } if(!isBegining){ System.out.println(number[i]); } } } public static void main(String [] args) throws Exception { int[] number = new int[3]; while(!isOverflow(number)){ print(number); System.out.println(); } } }
相关文章推荐
- 剑指offer-面试题 12 打印 1 到最大的 n 位数
- 剑指offer 面试题12—打印1到最大的n位数
- 剑指offer面试题12 打印1到最大的n位数
- 剑指offer-面试题12.打印1到最大的n位数
- 剑指Offer 12 打印1到最大的n位数
- 剑指Offer:面试题12 打印1到最大的n位数
- 【剑指offer】面试题12:打印1到最大的n位数
- 剑指offer-面试题12-打印1到最大的n位数
- 剑指offer之面试题12:打印1到最大的n位数
- 剑指offer-12 打印1到最大的N位数
- 剑指Offer面试题12打印1到最大的n位数,面试题13在O(1)时间删除链表结点
- 剑指offer-面试题12:打印1到最大的n位数
- 剑指Offer12:打印1到最大的n位数
- 【剑指offer】面试题12:打印1到最大的n位数
- 剑指offer-3-面试12:打印1到最大的n位数
- 剑指offer_面试题12_打印1到最大的n位数(大数问题)
- 剑指offer面试题[12]-打印1到最大的n位数
- 剑指Offer之打印1到最大的n位数(题12)
- 剑指offer面试题12——打印1到最大的n位数
- 剑指offer_面试题12_打印1到最大的n位数(大数问题)