文档章节

Pow(x, n)

LuXing
 LuXing
发布于 2014/05/04 16:15
字数 251
阅读 74
收藏 0
public class Solution {
    public double pow(double x, int n) {
        double res = 1;
        if(n == 0){
            return res;
        }else if(n > 0){
            if(n == 1){
                return x;
            }
            if(n % 2 == 0){
                double tmp = pow(x , n/2);
                return  tmp * tmp;
            }else{
                double tmp = pow(x , (n - 1) / 2);
                return tmp * tmp * x;
            }
        }else if(n < 0){
            int tmp = -n;
            if(n == -1){
                return 1/x;
            }
           if(tmp % 2 == 0){
               double temp = pow(x , n/2);
               return  temp * temp;
           }else{
               double temp = pow(x , (n + 1) / 2);
               return temp * temp/x;
           }
        }
        return res;
    }
}

上面这个提交通过:

/*
    * 超时
    */
    public static double pow(double x, int n) {
        
        double res = 1;
        if(n == 0){
            return res;
        }else if(n > 0){
            while(n != 0){
                res = res * x;
                n--;
            }
            return res;
        }else if(n < 0){
           while(n!= 0){
               res = res / x;
               n++;
           }
        }
        
        return res;
    }
    /*
     *  超时因为没有顺利用到分治
     */
    public static double pow(double x, int n) {
        double res = 1;
        if(n == 0){
            return res;
        }else if(n > 0){
            if(n == 1){
                return x;
            }
            if(n % 2 == 0){
                return pow(x , n/2) * pow(x , n/2);
            }else{
                return pow(x , (n - 1) / 2) * pow(x , (n - 1) / 2) * x;
            }
        }else if(n < 0){
            int tmp = -n;
            if(n == -1){
                return 1/x;
            }
           if(tmp % 2 == 0){
               return pow(x , n/2) * pow(x , n/2);
           }else{
               return pow(x , (n + 1) / 2) * pow(x , (n + 1) / 2) / x;
           }
        }
        return res;
    }


© 著作权归作者所有

共有 人打赏支持
LuXing
粉丝 19
博文 84
码字总数 54768
作品 0
广州
程序员
私信 提问
函数平方pow(x,n)的求法

考虑到n个x相乘式子的对称关系,可以对上述方法进行改进,从而得到一种时间复杂度为O(logn)的方法,递归关系可以表示为pow(x,n) = pow(x,n/2)*pow(x,n-n/2) 除了上述方法,这里还提到了一种十...

smart_w
2016/01/28
0
0
LeetCode 50 Pow(x, n)

分析 难度 中 来源 https://leetcode.com/problems/powx-n/ 题目 Implement pow(x, n), which calculates x raised to the power n (xn). Example 1: Input: 2.00000, 10 Output: 1024.00000......

flowingfog
2018/10/29
0
0
LeetCode:Pow(x, n) - 求指定数字x的整数次幂

1、题目名称 Pow(x, n)(求指定数字x的整数次幂) 2、题目地址 https://leetcode.com/problems/powx-n/ 3、题目内容 英文:Implement pow(x, n) 中文:给定底数x和指数n,求x的n次幂 4、解题...

北风其凉
2015/08/08
0
0
超级pow(a^b,b由数组表示)Super Pow

问题: Your task is to calculate a^b mod 1337 where a is a positive integer and b is an extremely large positive integer given in the form of an array. Example1: a = 2b = [3]Res......

叶枫啦啦
2017/12/27
0
0
实现x^n Pow(x, n)

问题: Implement pow(x, n). 解决: ① 调用java API。 class Solution { //28ms public double myPow(double x, int n) { return Math.pow(x,n); } } ② pow(x,n)就是求x的n次方。x的n次方......

叶枫啦啦
2017/09/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

3.系统和内存架构

在设计程序或并发系统时,需要考虑不同的系统和内存架构风格。 支持并发的计算机系统体系结构 1972年,迈克尔弗林(Michael Flynn)给出了用于分类不同风格计算机系统体系结构的分类法。 该分类...

Eappo_Geng
24分钟前
4
0
今天的学习

1,getimagesize:获得目标图像的大小 2,image_type_to_extension:获得目标文件的后缀信息 3,imagealphablending:设定目标图像混色的模式 4,imagechar:水平的画出一个字符 5,imagecharup...

墨冥
27分钟前
1
0
Java线程中yield与join方法的区别

长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。...

飓风2000
50分钟前
4
0
Python的 is 和 == 弄懂了吗?

在Python中一切都是对象。 Python中对象包含的三个基本要素,分别是: id(身份标识) type(数据类型) value(值) 对象之间比较是否相等可以用 == ,也可以用 is 。 is 和 == 都是对对象进行比较...

上海小胖
51分钟前
2
0
angularJS 路由加载js controller 未定义 解决方案

说明 本文主要说明,在angularJS框架使用中,angularJS 路由加载js controller 未定义 解决方案。 路由 $routeProvider 异步加载js 路由的基本用法,请查看官方文档,下面实例只说明,懒加载...

DrChenXX
59分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部