由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教数学类题目中对于1<<31的处理
相关主题
乘方函数还有简解么帮忙看看我写的atoi有没有bug, 谢谢
来贡献个小题.请教面试时的代码规范
关于找Kth Min in 2 sorted array的问题(leetcode请进)问一个atoi overflow的问题
how to calculate sqrt double?找最大俩数的代码怎么写?
leetcode pow runtime error??问一个L的题目
问个bit struct的面试题 急unit是什么?
请教C问题how to check a bin tree is balanced?
C++ Q23: if if else求两个有序数组的median的平凡解法?
相关话题的讨论汇总
话题: tmp话题: pow话题: return话题: double话题: 处理
进入JobHunting版参与讨论
1 (共1页)
r**h
发帖数: 1288
1
由于这个数在正整数中没有对应的数,因此很多时候都要单独处理,不过总觉得把这一
个情况单列出来搞得代码不好看。请问一般来说有什么比较好的处理方法吗?
比如说pow(x),我的代码是这样的, 1<<31的情况单独处理了:
double pow(double x, int n) {
if(n == 0) return 1;
if(x==0 || x==1) return x;
if(n < 0){
if(n == (1<<31)){
double tmp = pow(1/x, 1<<15);
return tmp*tmp;
}
else
return pow(1/x, -n);
}
double tmp = pow(x, n>>1);
if(n&1)
return tmp*tmp*x;
else
return tmp*tmp;
}
c****p
发帖数: 6474
2
这种应该考虑用unsigned int或者long

【在 r**h 的大作中提到】
: 由于这个数在正整数中没有对应的数,因此很多时候都要单独处理,不过总觉得把这一
: 个情况单列出来搞得代码不好看。请问一般来说有什么比较好的处理方法吗?
: 比如说pow(x),我的代码是这样的, 1<<31的情况单独处理了:
: double pow(double x, int n) {
: if(n == 0) return 1;
: if(x==0 || x==1) return x;
: if(n < 0){
: if(n == (1<<31)){
: double tmp = pow(1/x, 1<<15);
: return tmp*tmp;

b*****o
发帖数: 715
3
边界条件单独处理本来就是考点呀~
另外,我觉得就style来说,有些问题:
(1)最好不要用1<<31这种隐含的表达方式,而是应该用INT_MIN。
(2)1<<15这种表达也要避免。面试官会质疑你就移植性考虑,怎么知道将来int还是
32位呢?
(3)if有时有{,有时没有。style inconsistency是面试的大忌。

【在 r**h 的大作中提到】
: 由于这个数在正整数中没有对应的数,因此很多时候都要单独处理,不过总觉得把这一
: 个情况单列出来搞得代码不好看。请问一般来说有什么比较好的处理方法吗?
: 比如说pow(x),我的代码是这样的, 1<<31的情况单独处理了:
: double pow(double x, int n) {
: if(n == 0) return 1;
: if(x==0 || x==1) return x;
: if(n < 0){
: if(n == (1<<31)){
: double tmp = pow(1/x, 1<<15);
: return tmp*tmp;

r**h
发帖数: 1288
4
很好的建议,太谢谢了!

【在 b*****o 的大作中提到】
: 边界条件单独处理本来就是考点呀~
: 另外,我觉得就style来说,有些问题:
: (1)最好不要用1<<31这种隐含的表达方式,而是应该用INT_MIN。
: (2)1<<15这种表达也要避免。面试官会质疑你就移植性考虑,怎么知道将来int还是
: 32位呢?
: (3)if有时有{,有时没有。style inconsistency是面试的大忌。

n******n
发帖数: 567
5
这不影响复杂度啊,有什么好处理的。
1 (共1页)
进入JobHunting版参与讨论
相关主题
求两个有序数组的median的平凡解法?leetcode pow runtime error??
问一个关于binary search的问题问个bit struct的面试题 急
find max in shifted sorted array请教C问题
求助各位大牛:LeetCode的Decode WaysC++ Q23: if if else
乘方函数还有简解么帮忙看看我写的atoi有没有bug, 谢谢
来贡献个小题.请教面试时的代码规范
关于找Kth Min in 2 sorted array的问题(leetcode请进)问一个atoi overflow的问题
how to calculate sqrt double?找最大俩数的代码怎么写?
相关话题的讨论汇总
话题: tmp话题: pow话题: return话题: double话题: 处理