11數值的整數次方python

2021-08-08 22:49:40 字數 1126 閱讀 9130

題目:給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。

思路:考慮到exponent小於0、等於0、大於0的情況

class solution:

def power(self, base, exponent):

# write code here

ans = 1

if exponent > 0:

for i in range(exponent):

ans = base*ans

elif exponent == 0:

return 1

else:

for i in range(-exponent):

ans = base*ans

ans = 1/ans

return ans

乙個效率更高的方法:

當n為偶數, a^n = a^(n/2) * a^(n/2)

當n為奇數, a^n = a^((n-1)/2) * a^((n-1)/2)) * a

利用右移一位運算代替除以2

利用位與運算代替了求餘運演算法%來判斷乙個數是奇數還是偶數

優化**速度

# -*- coding:utf-8 -*-

class solution:

def power(self, base, exponent):

# write code here

if exponent == 0:

return 1

if exponent == 1:

return base

if exponent == -1:

return 1/base

ans = self.power(base, exponent >> 1)

ans = ans * ans

if exponent & 1 == 1:

ans = ans * base

return ans

判斷base是否為0:

if base-0.0 < 0.0000001 && base - 0.0 > -0.00000001:

reutrn 0

11 數值的整數次方

要注意的幾個地方 1.如何判斷兩個double型別的資料是否相等。2.需要進行power有效性的判斷,0的負指數次方沒有意義。3.在進行power運算的時候要考慮效率。includeusing namespace std bool isvalid true bool ispositive true ...

11 數值的整數次方

題意 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。public class solution if exponent 0 return 1 res else return res 有一點很重要 整數包括正數 負數和零!還有一點 指數函...

11 數值的整數次方

題目描述 給定乙個 double 型別的浮點數 base 和 int 型別的整數 exponent。求base 的 exponent 次方。不得使用庫函式,不需要考慮大數問題 思路 不能用 比較兩個浮點數是否相等,因為有誤差。考慮輸入值的多種情況。實現 public double power dou...