剑指Offer:(Java实现) 打印1到最大n位进制数
来源:互联网 发布:c语言实现get和post 编辑:程序博客网 时间:2024/05/17 06:26
Java实现 输入数字 n,按顺序打印出从 1 到最大的 n 位进制数。 比如输入 5,则打印出 1、2、3 一直到 99999
注意:当 n 稍大,那么 long型也会溢出,所以需要变化思路,用一个一维数组来存储从1到Math.pow(10,n)之间的数。因为无法用到数值来遍历打印,所以我们每个数都是一个一维数组,然后从非0的元素开始打印一维数组。那么多的数一次打印势必有递归方法。
在递归方法中调用打印的方法,将难题化简。
import org.junit.Test;public class JZ12_PrintBigNum { @Test public void testPrint(){ int[] arr = new int[4]; printRecursion( arr,0); } public void printRecursion(int[] arr ,int index){ if ( index == arr.length){ printNum( arr, arr.length ); return ; } else { for ( int i =0 ; i < 10; i++ ){ arr [index] = i ; printRecursion(arr,index+1); } } } public void printNum( int[] arr ,int n){ boolean first0 = true; for ( int i = 0 ;i < n; i++){ if( first0 && arr[i] !=0 ){ first0 = false; } if( !first0 ){ System.out.print(arr[i]); } } System.out.println(); }}
依次打印数组:{0,0,0,0},{0,0,0,1},
{0,0,0,2}...{9,9,9,9}
阅读全文
0 0
- 剑指Offer:(Java实现) 打印1到最大n位进制数
- 剑指offer--面试题12:打印1到最大的n位数--Java实现
- 剑指Offer:面试题12——打印1到最大的n位数(java实现)
- [剑指offer] 打印1到最大的n位数(JAVA实现)
- 剑指Offer面试题12:打印1到最大的n位数 Java实现
- 剑指Offer 面试题17:打印从1到最大的n位数 Java代码实现
- 剑指offer编程题Java实现——面试题12打印1到最大的n位数
- 剑指Offer——打印1到最大的n位数(好题)(java实现)
- 剑指Offer之打印1到最大的N位数
- 剑指offer:打印1到最大的n位数
- 【剑指offer】打印1到最大的n位数
- [剑指Offer]打印1到最大的n位数
- 【剑指offer】打印1到最大的n位数
- 剑指Offer之打印1到最大的n位数
- 剑指Offer之 - 打印1到最大的n位数
- 剑指offer-12 打印1到最大的N位数
- 剑指offer 12 -打印1到最大的n位数
- 剑指offer:打印1到最大的n位数
- [Unity&对象]如何把大量GameObject 物体 快速的放入 一个 GameObject 数组中
- hive 库清理问题
- 简单封装AFNetworking(二)
- Linux与生物信息(第一章——Linux常用命令)
- CSS3简单实现动画下拉菜单(display:none和CSS3动画之踩坑)
- 剑指Offer:(Java实现) 打印1到最大n位进制数
- mysql中在sql语句里replace的用法
- 事件分发机制学习
- iOS开发中的UDID和UUID详解
- sass笔记
- Android Studio集成极光推送(Jpush) 报错 java.lang.UnsatisfiedLinkError: cn.jpush.android.service.PushProtocol
- 关于跨域
- php 下载文件
- Filter及FilterChain的使用详解