PHP程式:計算階乘末尾零的個數
什麼是階乘?
非負整數的階乘,用符號“!”表示,是小於或等於該數的所有正整數的乘積。換句話說,一個數的階乘是透過將該數乘以它下面所有正整數得到的。
例如,5的階乘計算如下:
5! = 5 x 4 x 3 x 2 x 1 = 120
同樣,0的階乘定義為1。
0! = 1
階乘經常用於數學和組合學中,用於計算物件的排列、組合和安排。它們還在機率、微積分和數學的其他各個領域都有應用。
PHP程式:計算階乘末尾零的個數
在一個數的階乘中,末尾零是指階乘十進位制表示中末尾連續零的個數。
例如 10! = 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1
進行乘法運算
10! = 3,628,800
10的階乘是3,628,800。
10的階乘末尾零的個數是2,因為階乘末尾連續零的個數。
示例
<?php function countTrailingZeroes($number) { $count = 0; // Divide the number by powers of 5 and count the quotient // The quotient represents the number of trailing zeroes while ($number >= 5) { $number = (int) ($number / 5); $count += $number; } return $count; } // Test the function $number = 20; $trailingZeroes = countTrailingZeroes($number); echo "The factorial of $number has $trailingZeroes trailing zeroes.<br>"; // Test the function $number = 14; $trailingZeroes = countTrailingZeroes($number); echo "The factorial of $number has $trailingZeroes trailing zeroes."; ?>
輸出
The factorial of 20 has 4 trailing zeroes. The factorial of 14 has 2 trailing zeroes.
程式碼解釋
示例程式碼中呼叫了一個PHP函式`countTrailingZeroes`。此函式計算給定數字階乘中末尾零的個數。它透過將數字除以5的冪並計算商來實現此目的。`while`迴圈持續執行,只要數字大於或等於5。在迴圈中,使用整數除法將數字除以5,以計算當前數字中5的因子的個數。生成的商加到名為`$count`的變數中,該變數跟蹤末尾零的計數。迴圈結束後,函式返回最終計數。
在函式下方,有一個測試用例,其中使用值為123呼叫該函式。這使用`countTrailingZeroes`函式計算20的階乘中末尾零的個數。結果儲存在一個名為`$trailingZeroes`的變數中。最後,使用`echo`顯示結果,提供輸入數字及其階乘中末尾零的個數。
在這種情況下,20的階乘是2,432,902,008,176,640,000,因此其階乘中末尾零的個數是4,而14的階乘是87,178,291,200。因此,其階乘中末尾零的個數是2。
結論
提供的PHP程式有效地計算給定數字階乘中末尾零的個數。它使用`while`迴圈將數字除以5的冪並計算商,表示末尾零的個數。透過利用這種方法,程式避免了計算整個階乘的需要。這種技術之所以有效,是因為階乘中的末尾零源於5的因子。因此,透過計算5的因子,程式準確地確定了末尾零的個數。此程式碼為計算階乘中的末尾零提供了一種方便且高效的解決方案,有助於各種數學和程式設計應用。