使用BigInt在JavaScript中計算長階乘


在給定的問題陳述中,我們被要求使用JavaScript的功能找出BigInt值的長的階乘。BigInt是JavaScript中的資料型別,用於計算大數的階乘。

JavaScript中的BigInt資料型別是什麼?

讓我們瞭解一下JavaScript中BigInt資料型別的工作原理。

在Javascript中,有很多資料型別可用於定義資料,其中之一就是BigInt。BigInt是Javascript中的一種內建資料型別,它表示大整數。它是在ECMAScript 2020中引入的。它允許我們處理比Javascript標準數字更大的整數。藉助BigInt,我們可以對任意大小的整數進行數學運算。因此,在這裡我們將計算大的階乘。

眾所周知,階乘是直到給定數字的所有正整數的乘積。讓我們透過計算5的階乘來理解這一點。

5 = 5 x 4 x 3 x 2 x 1 = 120

在上面的例子中,我們計算了5的階乘,結果是120。因此,階乘可以很快變得非常大,這使得使用javascript資料型別計算它們變得困難,所以BigInt就派上用場了。

理解邏輯

問題陳述需要計算給定BigInt數字的階乘。程式碼將int值作為輸入。

在演算法中,我們將提供一種簡單有效的方法,使用Javascript中的BigInt資料型別計算數字的階乘。程式碼將使用for迴圈迭代從2到給定輸入數字(例如n)的所有數字。它將用值為1的BigInt變數result進行初始化,然後將每個數字相乘以獲得結果。因此,最終結果將是數字n的階乘。

演算法

步驟1 - 開始時,我們將開始建立一個函式來計算給定數字的階乘。

步驟2 - 然後在演算法的下一步中,我們將使用for迴圈來計算從2到給定數字num的所有數字的乘積。

步驟3 - 完成第二步後,結果的初始值設定為1n。1n是值為1的BigInt。

步驟4 - 現在,在步驟2中建立的迴圈從2n(值為2的BigInt)開始,並將迭代到數字num。依次將每個數字相乘以獲得結果。

步驟5 - 使用factorial變數顯示輸出。

示例

 // define the function to calculate factorial
  function calculateFactorial(n) {
    var fact = 1n;
    for (let i = 2n; i <= n; i++) {
      fact *= i;
    }
    return fact;
  }

  //define the number
  const num = 35;
  const factorial = calculateFactorial(num);

  console.log(`The Factorial of ${num} is "${factorial}"`);

輸出

The Factorial of 35 is "10333147966386144929666651337523200000000"

factorial物件用於在程式碼中儲存給定數字num 35的結果階乘。函式的結果是輸入整數的階乘。

複雜度

執行上述程式碼和函式所需的時間將為O(n)。因為這需要遍歷從2到num的每個數字一次。此外,由於只需要儲存結果的最新值,空間複雜度將為O(1)。因此,對於非常大的num值,我們可以說這種方法非常有效。

結論

這就是我們如何解決上述問題陳述中提出的問題。這是在JavaScript中計算任何給定數字的階乘的最簡單、最準確的方法。它使用for迴圈迭代從2到n的數字。透過在JavaScript中使用BigInt,我們可以輕鬆計算大數的階乘。使用BigInt計算階乘的演算法簡單、高效,時間複雜度為O(n),空間複雜度為O(1)。

更新於:2023年8月23日

1K+ 次檢視

啟動你的職業生涯

完成課程獲得認證

開始
廣告