打印1到n最大的n位数
来源:互联网 发布:拳皇14键盘优化 编辑:程序博客网 时间:2024/05/19 18:00
1 /*
2 输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1,2,3一直到最大的3位数即999
3 */
4
5 //如果初看的话很容易认为题目非常简单,用一个循环喀什逐个打印就可以。但是仔细分析这个问题,我们就可以知道并么有规定n的范> 围。当输入 n很大的时候,我们求最大的n位数用long long都会溢出,也就是考虑大数问题
2 输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1,2,3一直到最大的3位数即999
3 */
4
5 //如果初看的话很容易认为题目非常简单,用一个循环喀什逐个打印就可以。但是仔细分析这个问题,我们就可以知道并么有规定n的范> 围。当输入 n很大的时候,我们求最大的n位数用long long都会溢出,也就是考虑大数问题
6
7 #include<iostream> 8 #include<string.h> 9 using namespace std; 10 11 void Print1ToMaxofNDigitsRecursively(char* number,int length,int index); 12 void PrintNumber(char* number); 13 14 //打印1到n位的所有十进制数 15 void Print1ToMaxofNDigits(int n) 16 { 17 if(n < 0) 18 return; 19 char* number = new char[n+1]; 20 number[n] = '\0'; 21 22 for(int i = 0; i < 10; ++i) 23 { 24 number[0] = i + '0'; 25 Print1ToMaxofNDigitsRecursively(number,n,0); 26 } 27 delete []number; 28 } 29 30 //递归结束的条件是已经设置了最后一位 31 void Print1ToMaxofNDigitsRecursively(char* number,int length,int index) 32 { 33 if(index == length -1) 34 { 35 PrintNumber(number); 36 return; 37 } 38 39 for(int i = 0; i < 10; ++i) 40 { 41 number[index+1] = i + '0'; 42 Print1ToMaxofNDigitsRecursively(number,length,index+1); 43 } 44 } 45 46 //打印函数 不打印开头为0的数 47 void PrintNumber(char* number) 48 { 49 bool isBeginning0 = true; 50 int nLength = strlen(number); 51 52 for(int i = 0; i < nLength; ++i) 53 { 54 if(isBeginning0 && number[i] != '0') 55 isBeginning0 = false; 56 57 if(!isBeginning0) 58 { 59 printf("%c",number[i]); 60 } 61 } 62 printf("\t"); 63 64 } 65 66 int main() 67 { 68 cout<<"please input a number"<<endl; 69 int n; 70 cin>>n; 71 Print1ToMaxofNDigits(n); 72 return 0; 73 }
阅读全文
0 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位数
- Codeforces 820B Mister B and Angle in Polygon
- 【Tomcat】Tomcat Session在Redis共享
- kafka性能调优
- Activity生命周期
- 给recyclerview的item添加点击事件的 一种方法
- 打印1到n最大的n位数
- CMarkup成员方法简介
- 《道德经》第三十七章
- chrome浏览器的跨域设置——包括版本49前后两种设置
- java多线程和Python多线程
- 百度百科对“设备独立性的解释
- Python编程之http简介
- HDU 1234 JAVA
- 学习笔记20170627