国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

2000! | 看上去如此簡單的面試題,讓太多“前端”英雄好漢折戟

wawor4827 / 2293人閱讀

摘要:學堂碼匠求某個數字的階乘,很難嗎看上去這道題異常簡單,卻不曾想里面暗藏殺機,讓不少前端面試的英雄好漢折戟沉沙。更多前端開發面試真題更多面試真題,請移步微信小程序決勝前端

HTML5學堂-碼匠:求某個數字的階乘,很難嗎?看上去這道題異常簡單,卻不曾想里面暗藏殺機,讓不少前端面試的英雄好漢折戟沉沙。

面試真題題目

如何求“大數”的階乘(如1000的階乘、2000的階乘)

什么是階乘

一個正整數的階乘(英語:factorial)是所有小于及等于該數的正整數的積,并且0的階乘為1。
5的階乘 5! 等價于
54321

Number數字的數值范圍

在大多數瀏覽器當中:
● 最小數字是5e-324;(可以理解為浮點后324位)
● 最大數字是1.7976931348623157e+308;(可以理解為309位)
對于超過此范圍的數字,會顯示為Infinity或 -Infinity(正無窮、負無窮)。

遞歸實現階乘
function fact(maxNum) {
    if (maxNum > 1) {
         return maxNum * fact(maxNum - 1); 
    } else {
         return 1;
    }
}
var result = fact(170);
console.log(result);

運行結果:
7.257415615307994e+306

對于170!以下的階乘,是可以使用遞歸實現的,對于大于170的數字,階乘數已超出范圍,會顯示為Infinity

大數階乘如何實現 實現思路

將一個數字的每一位(個位、十位、百位、千位……)拆分出來,構成一個數組。
每次計算時,針對每一位進行數學運算,并遵循逢十進一的原則,修改數組中每一個數組元素的內容。
在完成所有運算之后,可以通過數組的join方法,將每一位連接起來,組成“字符串”輸出~

核心功能函數
var result = [1];
var maxNum = 300;

for (var num = 2; num <= maxNum; num++) {
      for (var i = 0, plus = 0; i < result.length || plus != 0; i++) {
            
          var count = (i < result.length) ? (num * result[i] + plus) : plus;

          result[i] = count % 10;
          plus = (count - result[i]) / 10;
    };
};
console.log(result.reverse().join(""));
300! 的運算結果

部分代碼說明

將當前被乘數拆分為數組,每位的位數分別進行乘法運算。
當count大于10時,進位,再讓下一位數字與之計算。此時,需要有一個變量(plus)存儲前一位得到的余數。
對于位數發生變化時(如結果從兩位數在計算之后變化為三位數),當前的result長度不能滿足,所以需要為for循環增加額外的判斷條件。

更多前端開發 面試真題

更多面試真題,請移步微信小程序 —— 決勝前端

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84894.html

相關文章

  • 2000! | 上去如此簡單面試,太多前端英雄好漢折戟

    摘要:學堂碼匠求某個數字的階乘,很難嗎看上去這道題異常簡單,卻不曾想里面暗藏殺機,讓不少前端面試的英雄好漢折戟沉沙。更多前端開發面試真題更多面試真題,請移步微信小程序決勝前端 HTML5學堂-碼匠:求某個數字的階乘,很難嗎?看上去這道題異常簡單,卻不曾想里面暗藏殺機,讓不少前端面試的英雄好漢折戟沉沙。 面試真題題目 如何求大數的階乘(如1000的階乘、2000的階乘) showImg(htt...

    macg0406 評論0 收藏0
  • 2000! | 上去如此簡單面試,太多前端英雄好漢折戟

    摘要:學堂碼匠求某個數字的階乘,很難嗎看上去這道題異常簡單,卻不曾想里面暗藏殺機,讓不少前端面試的英雄好漢折戟沉沙。更多前端開發面試真題更多面試真題,請移步微信小程序決勝前端 HTML5學堂-碼匠:求某個數字的階乘,很難嗎?看上去這道題異常簡單,卻不曾想里面暗藏殺機,讓不少前端面試的英雄好漢折戟沉沙。 面試真題題目 如何求大數的階乘(如1000的階乘、2000的階乘) showImg(htt...

    android_c 評論0 收藏0
  • ArrayList 線程安全性學習

    摘要:線程安全嗎雖然天天用,但是真的沒考慮過這個問題。其實,線程不安全。沒有對多線程問題進行處理,舉個方法的例子就能證明它線程不安全。線程不安全的要比線程安全的執行效率高。 引言 最近學校的氛圍比較活躍,考研的復習,不考研的都在寫簡歷準備面試。 看了看,最近也沒有好公司來辦宣講會,也就沒了投簡歷的意向。最近看了看面試題,想著補一補基礎,以后面幾家Spring Cloud的企業,去和面試官交流...

    genedna 評論0 收藏0
  • HTML-CSS

    摘要:但是,從字體上來說雪碧圖制作,使用以及相關,圖文。由于采用了編譯,所以能夠保證在瀏覽器不支持標準布局的情況下,回滾到舊版本的,保證移動設備中能呈現出一樣的布局效果。我不想陷入和的紛爭,但是有一件事是確定的極大的提升了移動端 一勞永逸的搞定 flex 布局 尋根溯源話布局 一切都始于這樣一個問題:怎樣通過 CSS 簡單而優雅的實現水平、垂直同時居中。記得剛開始學習 CSS 的時候,看到 ...

    xiaokai 評論0 收藏0

發表評論

0條評論

wawor4827

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<