题目:
编写一个递归函数reverse,它有一个整型参数。reverse函数按逆序打印出参数的值。例如,参数值为12345时,函数打印出54321。
代码:
#include <iostream>
#include <string>
using namespace std;
void reverse(int n);
int main()
{
int n;
cout << "请输入一个非负整数:";
cin >> n;
cout << endl << "它的逆序为";
reverse(n);
cout << endl << endl;
system("pause");
return 0;
}
void reverse(int n)
{
int count = 1, tmp = n, i; //tmp的作用是保存n的值,因为第一步是计算n有几位,会改变n的值,从而会影响下面的逆序赋值
while (tmp / 10 != 0)
{
tmp = tmp / 10;
count = count + 1;
}
int *a = new int[count];
for (i = 0; i < count; ++i)
{
a[i] = n % 10;
n = n / 10; //注意:更新n
}
for (i = 0; i < count; ++i) cout << a[i];
}