整数取反,颠倒位置
题目很简单,完成函数reverse,要求实现把给定的一个整数取其相反数的功能,举两个例子如下: x = 123, return 321 x = -123, return -321
规则:
1.完成功能函数即可。
下面是我用C写的,用C++其实也一样。
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; }
这个是C++的
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; }
我测试将整数-12345668取反运行一千万次,耗时要2730毫秒左右
测试代码
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; }
将reverse函数优化后,能快200毫秒
int reverse(int x) { int result = 0; do { result = result * 10 + x % 10; } while ((x /= 10) != 0); return result; }