整数取反,颠倒位置

题目很简单,完成函数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;
}

Comments are closed.