求1000的階乘尾部0的個數

2021-07-27 12:32:07 字數 657 閱讀 1767

要求1000的階乘尾部0的個數,如果想先求出1000的階乘,肯定超過了基本資料型別的取值範圍,此時就需要通過其他途徑來解決問題。

biginteger可以接收很大的整數,所以完全可以接收1000的階乘的結果。

public

static

void main(string args)

string str = bi.tostring();

intcount = 0;

for(int i = str.length()-1; i >= 0; --i)

system.out.println(count);

}

首先,乙個數要想在相乘的時候產生0,必須要是5的倍數,這樣在相乘的時候產生至少乙個0,這樣的數有1000/5=200個,在這兩百個數中,有些數是25的倍數,這些數與其他數相乘的時候可以產生兩個0,這些書共有200/5=40個,而在這40個數中,有一些數是125的倍數,這些數可以產生3個0,有40/5=8個,一次類推,這樣就得到了遞推公式:

public

static

void

main(string args)

public

static

intfun(int n)

階乘尾部0的個數

輸入 輸入資料有若干行,每行上有乙個非負整數n,對應一種情形。輸出 對於每一種情形,直接輸出結果 換行。樣例輸入816 30樣例輸出13 7方法一 令f x 表示正整數x末尾所含有的 0 的個數,則有 當0 n 5時,f n 0 當n 5時,f n k f k 其中 k n 5。include in...

階乘尾部的0

挑戰 首先我們不考慮時間複雜的解決思路是先求出 n 的階乘,然後再計算 n 階乘尾部 0 的個數。如下 public long trailingzeros long n 求尾部 0 的個數 while arg 10 0 result arg 10 return result 時間複雜度為 o n 那...

N階乘尾部的0個數

描述 設計乙個演算法,計算出n階乘中尾部零的個數 思路 1 1 2 3 n 1 2 3 2 2 5 2 3 7 2 2 2 3 3 2 5 化成質數相乘,只有2 5才可能得到結果有尾數中有0 2 因為2的個數是比5多的,求0的個數問題就轉化成了求5的個數的問題 3 5 5 5 5 5 5有n個5 得...