Pythonで最後にn個の0を持つように数mを見つけるプログラム
数nがあるとします。 mの階乗が少なくともn個の0を持つように、最小の数mを見つける必要があります。
したがって、入力がn =2の場合、出力は10になるため、出力は10になります。 =3628800および9! =362880、ゼロが2つある最小数は10です。
これを解決するには、次の手順に従います-
- 関数count_fives()を定義します。これにはnがかかります
- cnt:=0
- n> 0の場合、do
- n:=(n / 5)のフロア
- cnt:=cnt + n
- return cnt
- メインの方法から、次の手順を実行します-
- 左:=1
- 右:=5 ^ 24
- 右-左>5、実行
- mid:=フロア((右+左)/ 10)* 5
- fives:=count_fives(mid)
- 5がnと同じ場合、
- 右:=半ば
- 左:=右-5
- ループから抜け出す
- それ以外の場合、ファイブが
- 左:=中央
- それ以外の場合、
- 右:=半ば
例
理解を深めるために、次の実装を見てみましょう-
def count_fives(n): cnt = 0 while n > 0: n = n // 5 cnt += n return cnt def solve(n): left = 1 right = 5**24 while right - left > 5: mid = int((right + left) / 10) * 5 fives = count_fives(mid) if fives == n: right = mid left = right - 5 break elif fives < n: left = mid else: right = mid return right n = 2 print(solve(n))
入力
2
出力
10
-
Pythonで範囲内のノード数を見つけるプログラム
BSTがあり、左と右の境界lとrもあるとすると、lとrの間に値が存在するルート内のすべてのノードの数を見つける必要があります。 したがって、入力が次のような場合 l =7、r =13の場合、8、10、12の3つのノードがあるため、出力は3になります。 これを解決するために、次の手順に従います- スタック:=スタックと最初にルートを挿入し、カウント:=0 スタックが空でないときに、実行します node:=スタックの最上位要素、およびポップ要素 ノードがnullでない場合、 l<=ノードのデータ<=rの場合、 count:=count + 1
-
リスト内で最大数を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 与えられたリスト入力では、与えられたリストの中で最大の数を見つける必要があります。 ここでは、2つのアプローチについて説明します 並べ替え手法の使用 組み込みのmax()関数を使用する アプローチ1-組み込みのsort()関数を使用する 例 list1 = [18, 65, 78, 89, 90] list1.sort() # main print("Largest element is:", list1[-1]) 出力 Largest element is: