zoukankan      html  css  js  c++  java
  • leetcode刷题笔记五十 Pow(x,n)

    leetcode刷题笔记五十 Pow(x,n)

    源地址:50. Pow(x, n)

    问题描述:

    现 pow(x, n) ,即计算 x 的 n 次幂函数。

    示例 1:

    输入: 2.00000, 10
    输出: 1024.00000
    示例 2:

    输入: 2.10000, 3
    输出: 9.26100
    示例 3:

    输入: 2.00000, -2
    输出: 0.25000
    解释: 2-2 = 1/22 = 1/4 = 0.25
    说明:

    -100.0 < x < 100.0
    n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。

    代码补充:

    //使用暴力方法求解超出时间限制
    //考虑使用分治法进行处理 时间复杂度为O(log(n)) 空间复杂度O(1)
    //首先要对n的正负情况进行处理
    //使用递归,判断n为奇偶 使用half作为一半用于进行计算
    //若n为奇数, return half*half*x
    //若n为偶数, return half*half
    
    import scala.math
    object Solution {
        def myPow(x: Double, n: Int): Double = {
            if(x==1||n==0) return 1
            //正负处理
            if(n < 0) return (1/myPowHelper(x,math.abs(n)))
            return myPowHelper(x,n)
        }
        
        def myPowHelper(x:Double, n:Int): Double = {
            if(n == 0) return 1
            val half = myPowHelper(x, n/2)
            if ( n%2 == 0) return half*half
            else return half*half*x
        }
    }
    
  • 相关阅读:
    [项目管理]如何写好项目验收材料
    [英语学习]英语高级口译证书考试 备查
    A1042 Shuffling Machine洗牌机器
    B1018锤子剪刀布
    B1012数字分类
    B1008数组元素循环右移问题
    B1046划拳
    B1026 程序运行时间
    B1016部分A+B
    B1011A+B和C
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13261046.html
Copyright © 2011-2022 走看看