面试题12:打印1到最大的n位数(大数问题)
2016-07-04 15:20
676 查看
面试题是关于n位整数并且没有限定n的取值范围,或者是输入任意大小的整数,那么这个题目就很可能需要考虑大数问题。字符串是一个简单的、有效的表示大数的方法
这题比较难,用递归表达全排列,数字每一位都可能是0-9,从高位往低位设置
这题比较难,用递归表达全排列,数字每一位都可能是0-9,从高位往低位设置
void Print1ToMaxOfNDigits_2(int n) { if(n <= 0) return; char* number = new char[n + 1]; number = '\0'; for(int i = 0; i < 10; ++i) { number[0] = i + '0'; Print1ToMaxOfNDigitsRecursively(number, n, 0); } delete[] number; } void Print1ToMaxOfNDigitsRecursively(char* number, int length, int index) { if(index == length - 1) { PrintNumber(number); return; } for(int i = 0; i < 10; ++i) { number[index + 1] = i + '0'; Print1ToMaxOfNDigitsRecursively(number, length, index + 1); } } // 字符串number表示一个数字,数字有若干个0开头 // 打印出这个数字,并忽略开头的0 void PrintNumber(char* number) { bool isBeginning0 = true; int nLength = strlen(number); for(int i = 0; i < nLength; ++ i) { if(isBeginning0 && number[i] != '0') isBeginning0 = false; if(!isBeginning0) { printf("%c", number[i]); } } printf("\t"); }
相关文章推荐
- 锐捷面试_guozhijun20160704
- 锐捷面试问题_guanhang20160704
- 宝宝励志做让程序员泪流满面的标注
- 方正电子2016面试总结
- 【那些年遇到过的面试题】单例和静态类
- 关于面试的一些问题合集
- 面试题16:链表逆序
- 面试题11:数值的整数次方
- 话说程序员的职业生(IBM软件集团大中华区总架构师 寇卫东)
- JAVA程序员一定知道的优秀第三方库(2016版)
- 2016精选通用Java面试题二
- 记第一次实习面试经历
- 面试干货!21个必知数据科学面试题和答案part2(12-21)
- 面试干货!21个必知数据科学面试题和答案part1(1-11)
- 程序员与码农
- 程序员对自己的要求,决定他自己的高度。
- 面试时问到你对薪资的要求时 怎么去回答?
- 优秀程序员无他,善假于物也
- 优秀程序员无他,善假于物也
- PHP 程序员的技术成长规划