誰能給我解釋一下爲什麼這個程序不能正常工作?這個程序應該做什麼?
function powerf(base,exp){
if(exp==1)
return 1;
if(exp % 2 == 0)
return powerf(base,exp/2);
else
return 2*powerf(base,exp-2);
}
誰能給我解釋一下爲什麼這個程序不能正常工作?這個程序應該做什麼?
function powerf(base,exp){
if(exp==1)
return 1;
if(exp % 2 == 0)
return powerf(base,exp/2);
else
return 2*powerf(base,exp-2);
}
此程序應返回功率的值是這樣,例如: powerf(2,3)==> 8,但是當我運行它結果是powerf(2,3)==> 2
這是因爲,當你說powerf(2,3)
,它會持續else
部分,併成爲
powerf(2,3)
- >2*power(2,1)
- >2*1
(因爲任何提高到電源1 1按照您的邏輯)
爲什麼就不能有
function powerf(base, exp)
{
return Math.pow(base, exp);
}
因爲我必須解決這個程序,而不使用Math.pow :) 我應該使用遞歸 – maryam
@maryam可以'exp'是一個指數或負值?在這種情況下,您還需要爲所有這些場景設計邏輯。 – gurvinder372
什麼是該做的? – gurvinder372
什麼不起作用? – brk
此程序應返回功率的值這樣 例如:powerf(2,3)==> 8 但是當我運行它的結果是powerf(2,3)==> 2 – maryam