[Math]Pow(x, n)

Total Accepted: 73922 Total Submissions: 269855 Difficulty: Medium

Implement pow(xn).

(M) Sqrt(x)

1.递归

/*
n = 0, <0 , >0
x = 0 ,x>0,x<0
*/
class Solution {
public:
    double myPowWithPositiveExp(double x,unsigned int n)
    {
        if(n==1){
            return x;
        }
        double res = myPowWithPositiveExp(x,n>>1) ;
        res = res * res;
        return 1&n ? res * x : res;
    }
    double myPow(double x, int n) {
        if(n==0){
            return 1;
        }
        if(n<0){
            return 1/ myPowWithPositiveExp(x,-n)   ;
        }
        return myPowWithPositiveExp(x,n)   ;
    }
};

2.迭代

/*
n = 0, <0 , >0
x = 0 ,x>0,x<0
*/
class Solution {
public:
    double myPow(double x, int n) {
        if(n==0){
            return 1;
        }
        long long int m = fabs(n);
        double res = 1;
        bool first = true;
        while(m){
            first ?  x *= 1,first=false : x *= x;
            if(1&m){
                res *= x;
            }
            m = m>>1;
        }
        return  n<0 ?  1/res : res;
    }
};

Next challenges: (M) Sqrt(x)

时间: 2024-10-01 02:54:50

[Math]Pow(x, n)的相关文章

Math.pow用法及实现探究

pow函数在java.lang.Math类中,是求次方的函数,定义为: public static double pow(double a, double b): 即求a的b次方,例如: public static void main(String[] args) { double a = 2.0D; double b = 4.0D; double r = Math.pow(a, b); System.out.println(r); //输出为16.0 } 查看源码,发现其实现调用了Strict

JS中的Math.pow(a,b)方法

定义和用法 pow() 方法可返回 x 的 y 次幂的值. 语法 Math.pow(x,y) 参数 描述 x 必需.底数.必须是数字. y 必需.幂数.必须是数字. 返回值 x 的 y 次幂. 说明 如果结果是虚数或负数,则该方法将返回 NaN.如果由于指数过大而引起浮点溢出,则该方法将返回 Infinity. 实例 在下面的例子中,我们将把 pow() 运用到不同的数字组合上: <script type="text/javascript"> document.write(

java.lang.Math.pow 实例

先上实例:         System.out.println(Math.pow(1d, 0) + " If the second argument is positive or negative zero, then the result is 1.0.");         System.out.println(Math.pow(1d, -0) + " If the second argument is positive or negative zero, then t

(几何:两点间的距离)编写程序,提示用户输入两个点(x1,y1),(x2,y2),然后显示两点间的距离,利用公式,提示:math.pow(a,0.5)=根号啊。

import java.util.Scanner; public class Demo_1{ public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter x1 and y1: "); System.out.print("Enter x2 and y2: "); double b=input.nextDouble();

JavaScript基础 Math.pow(x,y) x的y次方

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

Javascript四舍五入(Math.round()与Math.pow())

代码 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> &

定义一个数,它可能为正 也可能为负 var num = Math.pow(-1,parseInt(Math.random() * 2) + 1);

for(var i = 0; i < 60; i++){ // 定义一个随机数范围从0 ~页面宽度 var x = parseInt(Math.random() * myCanvas.width); // 定义一个随机数 范围从0 ~页面高度 var y = parseInt(Math.random() * myCanvas.height); // 定义一个数,它可能为正 也可能为负 var num = Math.pow(-1,parseInt(Math.random() * 2) + 1);

Math.pow

一个Math函数,例如:Math.pow(4,3);返回4的三次幂,用法:Math.pow(x,y) x 必需传.底数.必须是数字. y 必需传.幂数.必须是数字. 如果结果是虚数或负数,则该方法将返回 NaN.如果由于指数过大而引起浮点溢出,则该方法将返回 Infinity我们用函数来写一个类似功能的 <script> function arr(n,m) { for(var i = 1,a=n; i<m; i++){ a *=n; } return a; } console.log(a

数组、Math、JOSN总结

json对象: 1.数组有length属性[尽量使用for循环] 2.而json没有length属性[可以使用for...in...循环] 3.for in 不能遍历页面中的节点对象. for ( var key in json4 ) { alert( key ); alert( json4[key] );}//使用方括号[]取键名,for和for in 可以相互嵌套. delete objName.key : [对象名.要删除的属性名] 在数据传输流程中,json是以文本,即字符串的形式传递的