Redian新闻
>
问个问题:十进制数字反转
avatar
问个问题:十进制数字反转# 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;我不明白为什么是这样?
哪位高人解答一下,包子酬谢
avatar
g*s
2
then why not ask him?

【在 j********x 的大作中提到】
: 上次bloomberg面试问到一个题,反转一个整数,如12345->54321
: 当时写了个这么个东西(面试官假设输入是正整数):
: int reverse(int n) {
: res = 0;
: while(n != 0) {
: res *= 10;
: res += n % 10;
: n = n / 10;
: }
: return res;

avatar
f*4
3
n为负数,你想把它整成整数
不用 n = -1 * n; 用啥?
或者你用 n = 0 - n; 也行
-n 编译都不通过
居然都不做防止溢出的?
正负数的溢出不等
avatar
i*e
4
The syntax
n = -n;
is valid in C and C++.
一些常见面试题的答案与总结 -
http://www.ihas1337code.com

【在 f****4 的大作中提到】
: n为负数,你想把它整成整数
: 不用 n = -1 * n; 用啥?
: 或者你用 n = 0 - n; 也行
: -n 编译都不通过
: 居然都不做防止溢出的?
: 正负数的溢出不等

avatar
j*x
5
是啊,我百思不得其解
当然,上面有人说我为什么不问,我其实问了,人家说,你回去试试看好了。。。
至于其它问题,不在讨论之列

【在 i**********e 的大作中提到】
: The syntax
: n = -n;
: is valid in C and C++.
: 一些常见面试题的答案与总结 -
: http://www.ihas1337code.com

avatar
r*y
6
这个算法有没有可能用递归?

【在 j********x 的大作中提到】
: 上次bloomberg面试问到一个题,反转一个整数,如12345->54321
: 当时写了个这么个东西(面试官假设输入是正整数):
: int reverse(int n) {
: res = 0;
: while(n != 0) {
: res *= 10;
: res += n % 10;
: n = n / 10;
: }
: return res;

avatar
f*4
7
好吧,我孤陋了 -_-

【在 i**********e 的大作中提到】
: The syntax
: n = -n;
: is valid in C and C++.
: 一些常见面试题的答案与总结 -
: http://www.ihas1337code.com

avatar
i*c
8
alao valid in Java

【在 i**********e 的大作中提到】
: The syntax
: n = -n;
: is valid in C and C++.
: 一些常见面试题的答案与总结 -
: http://www.ihas1337code.com

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。