整数取反,颠倒位置
题目很简单,完成函数reverse,要求实现把给定的一个整数取其相反数的功能,举两个例子如下: x = 123, return 321 x = -123, return -321
规则:
1.完成功能函数即可。
下面是我用C写的,用C++其实也一样。
[php]
int reverse(int x) {
int result = 0;
do {
int temp = x % 10;
result = result * 10 + temp;
} while ((x /= 10) != 0);
return result;
}
int main()
{
int num = 0;
scanf("%d", &num);
printf("%d\n", reverse(num));
return 0;
}
[/php]
这个是C++的
[php]
int reverse(int x) {
int result = 0;
do {
int temp = x % 10;
result = result * 10 + temp;
} while ((x /= 10) != 0);
return result;
}
int main()
{
int num = 0;
cin >> num;
cout << reverse(num) << endl;
return 0;
}
[/php]
我测试将整数-12345668取反运行一千万次,耗时要2730毫秒左右
测试代码
[php]
int main()
{
int num = -12345668;
int st = GetTickCount();
for (int i = 0; i < 10000000; ++i) {
reverse(num);
}
printf("cost time %d\n", GetTickCount()-st);
return 0;
}
[/php]
将reverse函数优化后,能快200毫秒
[php]
int reverse(int x) {
int result = 0;
do {
result = result * 10 + x % 10;
} while ((x /= 10) != 0);
return result;
}
[/php]