关闭

Algorithms—50.Pow(x, n)

387人阅读 评论(0) 收藏 举报
分类:

思路:为了降低耗时要考虑各种情况直接return。

public class Solution {
    public double myPow(double x, int n) {
    	if (n==0) {
			return 1.0;
		}
    	boolean flag=true;
    	if (n<0) {
			n=0-n;
			flag=false;
		}
    	boolean slag=true;
    	if (x<0) {
			x=0-x;
			if (n%2!=0) {
				slag=false;
			}
		}
    	if (x==1.0) {
			return slag?1.0:-1.0;
		}
    	double answer=1.0;
        for (int i = 0; i < n; i++) {
        	answer*=x;
        	if (answer==0.0) {
				return answer;
			}
		}
    	return flag?(slag?answer:-answer):(slag?1/answer:-1/answer);
    }
}


耗时:336ms。下游水准,尝试优化了下也没有什么好的思路。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:62676次
    • 积分:3005
    • 等级:
    • 排名:第11650名
    • 原创:247篇
    • 转载:3篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论