打印1到最大的n位数
来源:互联网 发布:多玩wow数据库 编辑:程序博客网 时间:2024/06/05 00:16
题目:输入一个数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,输出1,2,3。。。。。999。
常规的想法就是求出最大的那个数,然后遍历输出。但是当n非常大的时候就无法这么做了,可以考虑数组存储。实际上是一个全排列问题。
package others;/** * 输入一个数字n,按顺序打印出从1到最大的n位十进制数 * * @author duola * */public class print1ton { private static void print1tomax(int n) { if (n < 1) { System.out.print("error"); return; } int[] arr = new int[n]; printOneToNthDigits(0,arr); } public static void printOneToNthDigits(int n, int[] arr) { // 说明所有的数据排列选择已经处理完了 if (n >= arr.length) { printArray(arr); } //n位数的全排列,每一位有0-9候选项 else { for (int i = 0; i <= 9; i++) { arr[n] = i; printOneToNthDigits(n + 1, arr); } } } public static void printArray(int[] arr) { // 找第一个非0的元素 int index = 0; while (index < arr.length && arr[index] == 0) { index++; } // 从第一个非0值到开始输出到最后的元素。 for (int i = index; i < arr.length; i++) { System.out.print(arr[i]); } // 条件成立说明数组中有非零元素,所以需要换行 if (index < arr.length) { System.out.println(); } } public static void main(String[] args) { print1tomax(2); }}
1 0
- 打印1到最大的n位数
- 打印1到最大的n位数
- 打印1到最大的n位数
- 打印1到最大的n位数
- 打印1到最大的n位数
- 打印1到最大的n位数
- 打印1到最大的n位数
- 打印1到最大的n位数
- 打印1到最大的N位数
- 打印1到最大的n位数
- 打印1到最大的n位数
- 打印1到最大的n位数
- 打印1到最大的n位数
- 打印1到最大的n位数
- 打印1到最大的n位数
- 打印1 到最大的n位数
- 打印1到最大的n位数
- 打印1到最大的N位数
- 4.数据结构--线性表之静态链表
- 大端字节序和小端字节序之分
- F5负载均衡日志配置远程Syslog采集
- “水仙花数”你了解多少??
- strcat 的自我延伸实现(strncat)!!
- 打印1到最大的n位数
- strstr的自我实现!!!
- 测试大端小端的两个个程序
- 一个简单的通讯录。。。
- 冒泡排序之回调函数!
- 线性表--单链表(C++)
- VS2013 + Qt5.6 报错LINK : fatal error LNK1181: 无法打开输入文件“qtcore4.lib”
- C++ String的实现
- RAII&智能指针