用函数求出 n % 10 作为当前末位数的数字d,存放在函数栈,然后n / 10继续递归求值。函数返回时,就打印函数栈d对应字符或者说数字。
递归终止条件:n == 0
假设前提条件,输入的n >= 0,对于负数情况,由于题目没有说明负号如何处理,这里不处理,如果要处理也一样存放在string中。
下面例子提供了两种输出字符方式:函数栈,string。请自行根据实际需要调整,
void numToChar(int n, string& s)
{
if (n == 0) {
return;
}
numToChar(n / 10, s);
int d = n % 10;
s += d + '0';
cout << d;
}
int main()
{
int n;
cin >> n;
if (n < 0) return -1;
else if (n == 0) cout << 0 << endl;
string s;
numToChar(n, s);
cout << "\ns = " << s << endl;
return 0;
}