问个问题:十进制数字反转# JobHunting - 待字闺中
j*x
1 楼
上次bloomberg面试问到一个题,反转一个整数,如12345->54321
当时写了个这么个东西(面试官假设输入是正整数):
int reverse(int n) {
res = 0;
while(n != 0) {
res *= 10;
res += n % 10;
n = n / 10;
}
return res;
}
然后面试官问,如果n<0怎么办;我说判断一下,然后把n = -n,然后重复;
问题就在这里,他说不行,正确的做法是n = -1 * n;我不明白为什么是这样?
哪位高人解答一下,包子酬谢
当时写了个这么个东西(面试官假设输入是正整数):
int reverse(int n) {
res = 0;
while(n != 0) {
res *= 10;
res += n % 10;
n = n / 10;
}
return res;
}
然后面试官问,如果n<0怎么办;我说判断一下,然后把n = -n,然后重复;
问题就在这里,他说不行,正确的做法是n = -1 * n;我不明白为什么是这样?
哪位高人解答一下,包子酬谢