reverse integer

来源:互联网 发布:mac虚拟机断网 编辑:程序博客网 时间:2024/06/15 19:56

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

click to show spoilers.

Note:

The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.

重点:做overflows的判断。

尝试了用long来做判断,但是在tmp*10的时候就已经出错了,所以先对这个进行判断,再对总结果判断。

int reverse(int x) {int ret = 0;//int a = (1<<30-1)*2-1; long>int//long a = (1 << 31) - 1;int mod;int tmp = ret;if (x > 0) {while (x > 0) {mod = x % 10;tmp = ret;ret = tmp * 10 + mod;x = x / 10;if (tmp != (ret - mod) / 10)return 0;}if (ret < 0)return 0;elsereturn ret;}else {x = -x;while (x > 0) {mod = x % 10;tmp = ret;ret = tmp * 10 + mod;x = x / 10;if (tmp != (ret - mod) / 10)return 0;}ret = -ret;if (ret > 0)return 0;elsereturn ret;}}

0 0
原创粉丝点击