本题目考察大数。
#include <iostream> #include <stdio.h> using namespace std; bool Increment(char * number) { bool isOverflow = false; int nTakeOver = 0; int nLength = strlen(number); for (int i = nLength - 1; i >= 0; i--) //模拟整数加法 { int nSum = number[i] - '0' + nTakeOver; if (i == nLength - 1) nSum++; if (nSum >= 10) { if (i == 0) { isOverflow = true; } else { nSum -= 10; nTakeOver = 1; number[i] = char('0' + nSum); } } else { number[i] = char('0' + nSum); break; } } return isOverflow; } 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(" "); } void Print1ToMaxOfNDigits(int n) { if (n <= 0) return; char *number = new char[n + 1]; memset(number, '0', n); number[n] = '