reverse integer

    xiaoxiao2021-03-30  43

    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; else return 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; else return ret; } }

    转载请注明原文地址: https://ju.6miu.com/read-665131.html

    最新回复(0)