打印1到最大的n位数
2017-08-02 19:52
351 查看
考虑大数问题,用数组表示,要做两件事:数组加一,输出数组
bool IsAdd(int a[],int n) { int flag = 0; for (int i = n; i >= 0; i--) { if (i == n) { int tmp = a[i] + flag + 1; (最后一位数时才加一) a[i] = tmp % 10; flag = tmp / 10; } else { int tmp = a[i] + flag; a[i] = tmp % 10; flag = tmp / 10; } } if (a[0] == 1) return false; return true; } void PrintNum(int a[], int n) { int i = 0; while (a[i] == 0&&i<n) i++;(从第一个不是0的数开始打印) while (i <= n) cout << a[i++]; cout << endl; } void PrintAll(int n) { int *a = new int[n + 1]();(多出来的一位用来判断是否打印到最后一位数) while (IsAdd(a, n)) { PrintNum(a, n); } } int main() { PrintAll(2); }
相关文章推荐
- 剑指Offer面试题12[打印1到最大的n位数]
- 剑指offer 面试题12 打印1到最大的N位数
- 打印1到最大的n位数
- 边看边写(打印1到最大的n位数)
- 每天一道算法题(15)——打印1到最大的n位数
- 打印1到最大的n位数
- (剑指Offer)面试题12:打印1到最大的n位数
- 剑指offer 打印1到最大的N位数
- 剑指Offer10 打印1到最大n位数
- 剑指offer--打印1到最大n位数
- 【剑指offer】题12:打印1到最大的n位数
- 打印1到最大的n位数
- 剑指Offer-12-打印1到最大的n位数
- 剑指Offer之面试题12:打印1到最大的N位数
- 打印1到最大的n位数
- 剑指offer 面试题17:打印1到最大的n位数
- 打印从1到最大的n位数
- 打印1到最大的n位数
- 打印1到最大的n位数
- 剑指offer面试题12:打印1到最大的n位数(1)