2652 階乘0的數量 V2

2022-02-16 15:49:42 字數 1265 閱讀 1224

題目描述

給出乙個數k,求最小的n,使得n的階乘後面0的數量》=k。

例如k=1,

5的階乘 = 1*2*3*4*5 = 120,120後面有1個0。並且4的階乘後面沒有0,所以5是最小的結果。

輸入

乙個數k(1 <= k <= 10^9)

輸出

輸出最小的滿足條件的n。

輸入樣例

1輸出樣例

5

又是一道二分答案題。

這次直接幹v2版本。(v1版通用)

先在前面說一下,這道題需要使用long long,否則會wa掉幾個值

這道題最先考慮的是如何判斷它末尾有幾個0。

沒錯,又是找規律

末尾0的構成要有2和5這兩個數

例如:10=2*5

100=4*5*5

因為2的倍數比5的倍數多得多

所以,我們只需要考慮5的倍數有幾個就可以知道末尾有幾個0。

(注意25這一類數,等於5*5,算是兩個5的倍數)

規律找出來了。

然後是二分

我們可以將5的倍數進行二分,也就是最後的答案。

如果這個二分的答案滿足k,就把二分的值調小

如果這個二分的答案不滿足k,就把這個值調大

bingo,問題解決!

先來看看check函式的**

1

bool check(long

longx)8

if(num>=k)

9return1;

10else

11return0;

12 }

下面是整個題目的**

1 #include2 #include3 #include4 #include5 #include6

#define inf 100000000

7using

namespace

std;

8long

longk;9

bool check(long

long

x)16

if(num>=k)

17return1;

18else

19return0;

20}21int

main()

2234 cout<35return0;

36 }

2652 階乘0的數量 V2

題目描述 給出乙個數k,求最小的n,使得n的階乘後面0的數量 k。例如k 1,5的階乘 1 2 3 4 5 120,120後面有1個0。並且4的階乘後面沒有0,所以5是最小的結果。輸入 乙個數k 1 k 10 9 輸出 輸出最小的滿足條件的n。輸入樣例 1輸出樣例 5 又是一道二分答案題。這次直接幹...

階乘後面0的數量

n的階乘後面有多少個0?6的階乘 1 2 3 4 5 6 720,720後面有1個0。收起乙個數n 1 n 10 9 輸出0的數量51有思路了,這個題並不難。寫它是因為網上很多題解,沒有把思想真正表達清楚,所以想寫乙份題解,談談我的看法。此類問題很顯然屬於數學問題,一定要找到其中的本質規律才能得到正...

51nod 3034 矩形的數量 V2

題目 乙個m乘n的方格圖,有多少種形狀不同的矩形。1x2和2x1算同一種。例如 4 3的方格中共有9種。1x1,1x2,1x3,2x2,2x3,3x3,4x1,4x2,4x3 輸入共一行 2個數m,n,對應方格圖的長寬 1 m,n 1e9 輸出輸出對應的矩形種類 mod 1e9 7。資料範圍 1 m...