面試題11 數值的整數次方

2021-07-11 10:03:54 字數 892 閱讀 9880

這個問題我想很多人拿到之後直接設定乙個for迴圈,讓底數自乘次方和次數就行。但是沒有考慮到底數是0、指數是0、以及指數是負數的情況

#coding:utf-8

# 不得使用庫函式,實現數值的整數次方

def power(base, exponent):

answer = 1.0

if isequaltozero(base, 0.0) == true:

return false

if exponent > 0:

for i in range(exponent):

answer *= base

return answer

elif exponent == 0:

return 0

elif exponent < 0:

for i in range(exponent):

answer *= base

return 1/answer

def isequaltozero(num1, num2): # 不能直接用==判斷兩個小數是否相等,兩個小數的差值很小才能認為它們相等

if (num1 - num2 < 0.0000001) and (num2 - num1 < 0.0000001):

return true

else:

return false

print power(5, 4)

print power(0, -1)

c語言中,計算機表示小數會有誤差,我們不能直接用『==』判斷兩個小數是否相等,如果兩個小數的絕對值小於0.00000001才能認為是相等,這個在**中已經體現了。(但是python沒有這麼矯情,可以準確的判斷兩個小數是否相等,但我在原始碼中依舊加入了這個模組)

面試題11 數值的整數次方

題目 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。這道題目有以下幾點需要注意 0的0次方是無意義的,非法輸入 0的負數次方相當於0作為除數,也是無意義的,非法輸入 base如果非0,如果...

面試題11 數值的整數次方

面試題11 題目 實現函式double power double base,int exponent 求base的exponent次方。不使用庫函式,不考慮大數問題。需要考慮的是當輸入的指數 exponent 為0或負數的情況。bool g invalidinput false 採用全域性變數來標識...

面試題11數值的整數次方

題目 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大樹問題。這道題目有以下幾點需要注意 0的0次方是無意義的,非法輸入 0的負數次方相當於0作為除數,也是無意義的,非法輸入 base如果非0,如果...