Go語言程式:計算階乘的尾隨零個數


在數學中,階乘是一個函式,它將給定數字乘以小於或等於該數字的每個正整數。該函式的結果用符號!表示。例如,5的階乘是5! = 5 x 4 x 3 x 2 x 1 = 120。

在本文中,我們將討論如何編寫一個Go語言程式來計算一個數字階乘中尾隨零的個數。

計算階乘尾隨零個數的演算法

計算一個數字階乘中尾隨零個數的演算法如下:

  • 將變數count初始化為0。

  • 將數字除以5,並將商儲存在num中。

  • 如果num大於0,則將num新增到count中。

  • 將num除以5,並將商儲存在num中。

  • 重複步驟3-4,直到num小於或等於0。

  • count的值就是原始數字階乘中尾隨零的個數。

Go語言程式:計算階乘的尾隨零個數

現在,讓我們使用上面的演算法編寫Go語言程式來計算一個數字階乘中尾隨零的個數:

示例

package main

import "fmt"

func countTrailingZeros(n int) int {
   count := 0
   for i := 5; n/i >= 1; i *= 5 {
      count += n / i
   }
   return count
}

func main() {
   num := 10
   fmt.Printf("The number of trailing zeros in the factorial of %d is %d", num, countTrailingZeros(num))
}

輸出

The number of trailing zeros in the factorial of 10 is 2

在這個程式中,我們首先定義一個名為countTrailingZeros的函式,它接受一個整數n作為引數並返回一個整數。此函式使用我們前面討論的演算法計算n的階乘中尾隨零的個數。

然後,我們定義一個變數num並將其傳遞給countTrailingZeros函式。我們使用fmt.Printf列印函式的結果,它顯示num階乘中尾隨零的個數。

這意味著10的階乘有2個尾隨零。您可以修改num的值來測試其他值的程式。

結論

我們學習瞭如何編寫Go語言程式來計算一個數字階乘中尾隨零的個數。我們討論了此程式的演算法並使用Go語言實現了它。透過遵循提供的步驟,您可以編寫一個程式來計算任何數字階乘中尾隨零的個數。此程式可用於需要計算大階乘中尾隨零個數的各種數學應用中。Go語言為此類數學計算提供了一個高效且易於使用的平臺。

更新於:2023年4月19日

瀏覽量:158

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.