找出n 末尾有幾個0?

2021-09-06 08:50:10 字數 683 閱讀 4563

解法一:找出n!中質數2和質數5的個數,由於能被2整除的數的個數比能被5整除的數多的多,因為只需求出質數5的個數。利用z=[z/5]+[z/25]+[z/125]+....,其中[z/5]表示<=z的數中含有質數5的個數。。**:

#includeusing

namespace

std;

intmain()

cout

system(

"pause");

return0;

}

解法二:**:

#includeusing

namespace

std;

intmain()

} cout

return0;

}

解法三(儲存一定數):**:

#includeusing

namespace

std;

intmain()

if(sum>=100000)//

儲存末尾5位數字即可

sum%=100000

; }

while(sum%10==0)//

消0 cout

return0;

}//這種解法後面解「從最末乙個非0位開始自低位向高位數的第1或k位」還有用,同理

n的階乘末尾有幾個0

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 這個問題很簡單,就是問你n的階乘末尾有幾個0?輸入第一行乙個整數t 1 t 100 代表測試組數 接下來t行,每行乙個數n 1 n 10 9 對於每組測試資料,輸出...

N的階乘中末尾有幾個0

原位址 n的階乘中末尾有幾個0 如果n!k 10m,且k不能被10整除,那麼n!末尾有m個0。再考慮對n!進行質因數分解,n!2 x 3 y 5 z 由於10 2 5,所以m只跟x和z相關,每一對2和5相乘可以得到乙個10,於是m min x,z 不難看出x大於等於z,因為能被2整除的數出現的頻率比...

愛奇藝筆試 n!末尾有幾個0

分析 看到這個問題,有人可能第一反應是先求出n 然後再根據求出的結果,最後得出n 的末尾有多少個0。但是轉念一想,會不會溢位。其實,從 哪些數相乘可以得到10 這個角度,問題就變得比較的簡單了。首先考慮,如果n的階乘為k和10的m次方的乘積,那麼n 末尾就有m個0。n的階乘可以分解為 2的x次方,3...