题目:
编写一个函数reverse,它有一个整型参数和一个整型的返回值。reverse函数返回参数值的逆序值。例如,参数值为12345时,函数返回54321。
代码:
#include <iostream>
using namespace std;
int reverse(int n);
int main()
{
int n;
cout << "请输入一个非负整数:";
cin >> n;
cout << endl << "它的逆序为" << reverse(n) << endl << endl;
system("pause");
return 0;
}
int reverse(int n)
{
int count = 1, tmp = n, result = 0, 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)
{
tmp = 1;
for (int j = count - i - 1; j > 0; --j)
{
tmp = tmp * 10;
}
result = result + a[i] * tmp;
}
return result;
}