剑指offer_12(打印出从1到最大n位数)
来源:互联网 发布:模具编程软件 编辑:程序博客网 时间:2024/06/06 12:42
题意:给定一个整数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(); } }}
0 0
- 剑指offer_12(打印出从1到最大n位数)
- 打印从1到最大n位数
- 打印出1到最大的n位数
- 写函数实现打印出1到最大的n位数,形参为n位数
- 打印1到最大的n位数 题目:输入数字n,按顺序打印出从1最大的n位十进制数。
- 打印从1到最大的n位数
- 打印从1到最大的n位数
- 打印从1到最大的n位数
- 从打印1到最大的n位数
- 打印从1到n位数的最大数
- 打印从1到最大的n位数
- java打印从1到最大的n位数
- 剑指OFFER || 打印从1到最大的N位数 12_Print1ToMaxOfNDigits.cpp
- 剑指offer:(12)代码的完整性: 打印从1到最大的n位数
- 剑指offer--面试题17:打印从1到最大的n位数
- 【剑指offer】面试题17:打印从1到最大的n位数
- 《剑指offer》面试题17:打印从1到最大的n位数
- 剑指Offer 面试题17:打印从1到最大的n位数 Java代码实现
- 每天一个小题目——路灯
- 日常问题解决
- 5. Longest Palindromic Substring
- P1801 黑匣子(对顶堆)
- HDU1584~蜘蛛牌(深搜)
- 剑指offer_12(打印出从1到最大n位数)
- C++ 类模板声明时注意的地方
- maven项目使用maven-assembly-plugin打包成可运行的jar
- PAT-A 1044. Shopping in Mars (25)
- Unity 网格合并
- opencv调用是视频图像并且显示
- 防止一个按钮在单位时间内提交多次
- event-config.h指明所在系统的环境
- 继承的实现与限制