這個問題我想很多人拿到之後直接設定乙個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,如果...