打印1到最大的n位数(循环方法)
来源:互联网 发布:java性能分析工具 编辑:程序博客网 时间:2024/06/03 17:20
看到《剑指offer》的第12题是用递归完成的,就想到应该可以用循环完成。
因为n可能很大,用long long都会溢出,所以应该考虑大数问题。对于大数可以用字符串和数字表达。
#include <iostream>using namespace std;void Print1ToMaxOfNDigits(int N){if (N<=0){cout<<"InvalidInput"<<endl;return ;}char* arr=new char[N+2]; //多两个字符,第0位用于当哨兵,第N+1用于存储字符串结束符for (int i=0;i<N+1;i++){arr[i]='0';}arr[N+1]=NULL;int index;int count1=0;//count用于记入现在已经打印出来的数的位数,以免打印出数字前面的0int count2=0;while (arr[0]!='1'){index=N;cout<<&arr[N-count1]<<endl;++arr[N];count2=0;while (arr[index]=='9'+1){arr[index]='0';--index;++arr[index];++count2;}if (count2>count1){count1=count2;}}delete[] arr;}void main(){Print1ToMaxOfNDigits(2);}
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位数
- 矩阵链乘法2(15章:动态规划)。。。2014.5.30
- Zero Copy I: User-Mode Perspective (1)
- PCA(Principal Component Analysis)之个人理解
- poj2196
- 思维框架
- 打印1到最大的n位数(循环方法)
- 经典旅游01背包
- 如何监控统计BW报表的执行时间-ST13
- Zero Copy I: User-Mode Perspective (2)
- uva 147 Dollars
- linux netlink套接字学习资料
- XML
- POJ_随机快速排序
- 变量foo 和 bar的由来