一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 514|回复: 5
收起左侧

[Leetcode] 请教pow(x,n)这道题

[复制链接] |试试Instant~ |关注本帖
dreamhit 发表于 2015-2-1 13:58:01 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x

大家对这段代码怎么看,lc accepted。
但是明显 n==Integer.MIN_VALUE时,这个代码应该输出错误,再比如
x==Double.MAX_VALUE, n=2 这种情况。
问问大家怎么看, 谢谢~
  1. public class Solution {
  2.     public double pow(double x, int n) {
  3.         if(n<0)
  4.             return 1/helper(x, -n);
  5.         else
  6.             return helper(x, n);
  7.     } // end pow
  8.    
  9.     public double helper(double x, int n){
  10.         if(x==0)
  11.             return 0;
  12.         if(n==0)
  13.             return 1;
  14.         double v = helper(x,n/2);
  15.         if(n%2==0){
  16.             return v*v;
  17.         }else{
  18.             return v*v*x;
  19.         }
  20.     }
  21. }
复制代码
billyli8866 发表于 2015-2-1 14:33:01 | 显示全部楼层
为什么会输出错误?
回复 支持 反对

使用道具 举报

Freetymekiyan 发表于 2015-2-2 13:38:39 | 显示全部楼层
不是所有问题都能靠用范围更大的type避免overflow,很多情况下都只能算缓解

面试的时候你如果提到这两个地方有可能overflow是很好的insight,我觉得面试官会给你加分
回复 支持 反对

使用道具 举报

 楼主| dreamhit 发表于 2015-2-2 13:51:41 | 显示全部楼层
Freetymekiyan 发表于 2015-2-2 13:38
不是所有问题都能靠用范围更大的type避免overflow,很多情况下都只能算缓解

面试的时候你如果提到这两个 ...

谢谢你的回复~    其实我觉得应该把underflow overflow在程序中有所表现,比如抛出某种异常之类的。
回复 支持 反对

使用道具 举报

 楼主| dreamhit 发表于 2015-2-2 13:52:13 | 显示全部楼层
billyli8866 发表于 2015-2-1 14:33
为什么会输出错误?

因为最小负数取正后  就overflow了
回复 支持 反对

使用道具 举报

akatsuki521 发表于 2015-2-18 09:23:15 | 显示全部楼层
我觉得可以用long来表示n啊
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-3 12:40

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表