摘要:題目要求此處為題目鏈接即用自己的代碼實(shí)現(xiàn)指數(shù)運(yùn)算。指數(shù)為負(fù)數(shù)即求其倒數(shù)。思路一二分法計(jì)算這題的思路我之前的一篇博客思路基本相同。所以在能轉(zhuǎn)換為循環(huán)的情況下還是最好使用循環(huán)來(lái)解決。
題目要求
此處為題目鏈接
即用自己的代碼實(shí)現(xiàn)指數(shù)運(yùn)算。
指數(shù)運(yùn)算一般有兩種情況,即指數(shù)為整數(shù)和指數(shù)為負(fù)數(shù)的情況。指數(shù)為負(fù)數(shù)即求其倒數(shù)。
這題的思路我之前的一篇博客思路基本相同。有興趣的可以直接翻看那篇博客再思考一下這題。代碼如下
public double myPow(double x, int n) { if(x==0) return 0; if(n==0) return 1; x = n>0 ? x : 1/x; n = Math.abs(n); if(n%2!=0){ return x*myPow(x, n-1); } long temp = 1; double result = x; while(n >= (temp+temp)){ temp += temp; result *= result; } return result*myPow(x, n-(int)temp); }思路二:遞歸
遞歸的方法在大多數(shù)情況下比較消耗存儲(chǔ)空間,因?yàn)闀?huì)保留上一個(gè)結(jié)果的所有情況和指向子函數(shù)的指針。所以在能轉(zhuǎn)換為循環(huán)的情況下還是最好使用循環(huán)來(lái)解決。
double myPow(double x, int n) { if(n<0) return 1/x * myPow(1/x, -(n+1)); if(n==0) return 1; if(n==2) return x*x; if(n%2==0) return myPow( myPow(x, n/2), 2); else return x*myPow( myPow(x, n/2), 2); }
想要了解更多開(kāi)發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號(hào)!將會(huì)不定期的發(fā)放福利哦~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/69980.html
摘要:譯者注規(guī)范化就是把小數(shù)點(diǎn)放在第一個(gè)非零數(shù)字的后面總結(jié)當(dāng)指數(shù)的范圍是十進(jìn)制分?jǐn)?shù)不是所有的十進(jìn)制分?jǐn)?shù)都能夠非常精確的表示例如和都不能夠被精確的表示成二進(jìn)制浮點(diǎn)數(shù)。相同的,也不能被精確表示成一個(gè)十進(jìn)制分?jǐn)?shù),它大概能被表示成。 在JavaScript中所有的數(shù)字都是浮點(diǎn)數(shù),本篇文章將介紹這些浮點(diǎn)數(shù)在JavaScript內(nèi)部是怎樣被轉(zhuǎn)為64位二進(jìn)制的。我們會(huì)特別考慮整數(shù)的處理,所以讀完本篇之后,...
摘要:數(shù)字?jǐn)?shù)字都是浮點(diǎn)數(shù),按照標(biāo)準(zhǔn)進(jìn)行存儲(chǔ)。因此,只有偶數(shù)可以在范圍內(nèi)表示。但只有超過(guò)指數(shù)的上限才稱(chēng)為中的溢出。結(jié)論在這篇博文中,我們研究了如何將其浮點(diǎn)數(shù)轉(zhuǎn)換為位。 JavaScript中的所有數(shù)字都是浮點(diǎn)數(shù)。這篇博客文章解釋了這些浮點(diǎn)數(shù)如何在64位二進(jìn)制內(nèi)部表示。由于特別考慮,本文中的數(shù)字將用整數(shù)表示,以便在閱讀本文后,您將了解在以下交互中會(huì)發(fā)生什么: (譯者注:浮點(diǎn)數(shù)并不一定等于小數(shù),定...
摘要:由于浮點(diǎn)數(shù)不是精確的值,所以涉及小數(shù)的比較和運(yùn)算要特別小心。根據(jù)標(biāo)準(zhǔn),位浮點(diǎn)數(shù)的指數(shù)部分的長(zhǎng)度是個(gè)二進(jìn)制位,意味著指數(shù)部分的最大值是的次方減。也就是說(shuō),位浮點(diǎn)數(shù)的指數(shù)部分的值最大為。 一 前言 這篇文章主要解決以下三個(gè)問(wèn)題: 問(wèn)題1:浮點(diǎn)數(shù)計(jì)算精確度的問(wèn)題 0.1 + 0.2; //0.30000000000000004 0.1 + 0.2 === 0.3; // ...
摘要:表示正數(shù),表示負(fù)數(shù)。是一個(gè)無(wú)符號(hào)整數(shù),因?yàn)殚L(zhǎng)度是位,取值范圍是。浮點(diǎn)數(shù)具體數(shù)值的實(shí)際表示。例如對(duì)于單精度浮點(diǎn)數(shù),指數(shù)部分實(shí)際最小值是,對(duì)應(yīng)的尾數(shù)部分從一直到,相鄰兩小浮點(diǎn)數(shù)之間的距離都是而與最近的浮點(diǎn)數(shù)即最小的非規(guī)約數(shù)也是。 二進(jìn)制表示小數(shù) 例如用二進(jìn)制表示 0.8125 0.8125 0.8125*2 = 1.625 取整為 1 0.625*2=1.25 取整為 1 0.25*2=0...
摘要:上一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置類(lèi)型邏輯值檢測(cè)布爾運(yùn)算比較下一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置類(lèi)型迭代器類(lèi)型序列類(lèi)型數(shù)字類(lèi)型存在三種不同的數(shù)字類(lèi)型整數(shù)浮點(diǎn)數(shù)和復(fù)數(shù)。標(biāo)準(zhǔn)庫(kù)包含附加的數(shù)字類(lèi)型,如表示有理數(shù)的以及以用戶(hù)定制精度表示浮點(diǎn)數(shù)的。 上一篇文章:Python標(biāo)準(zhǔn)庫(kù)---9、內(nèi)置類(lèi)型:邏輯值檢測(cè)、布爾運(yùn)算、比較下一篇文章:Python標(biāo)準(zhǔn)庫(kù)---11、內(nèi)置類(lèi)型:迭代器類(lèi)型、序列類(lèi)型 數(shù)字類(lèi)型 --- int,...
閱讀 3795·2021-09-29 09:34
閱讀 3770·2021-09-27 13:34
閱讀 566·2021-09-24 09:47
閱讀 3037·2019-08-30 15:53
閱讀 1808·2019-08-26 13:54
閱讀 2086·2019-08-26 13:43
閱讀 531·2019-08-23 14:47
閱讀 1740·2019-08-23 14:28