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: