Pythonで桁数が厳密に増加しているn桁の整数をカウントするプログラム
数がnであるとすると、数字が厳密に昇順になるように、n桁の正の整数の数を見つける必要があります。
したがって、入力がn =3の場合、数値は123、124、125、...、678,789
であるため、出力は84になります。これを解決するには、次の手順に従います-
-
n <9がゼロ以外の場合、
-
組み合わせを返す(9Cn)
-
-
それ以外の場合
-
0を返す
-
理解を深めるために、次の実装を見てみましょう-
例
from math import factorial as f class Solution: def solve(self, n): if n < 9: return f(9) / f(n) / f(9 - n) else: return 0 ob = Solution() print(ob.solve(3))
入力
3
出力
84
-
Pythonで歩くことによってk回カバーされるブロックの数を数えるプログラム
ウォークとターゲットという2つのリストがあるとします。最初は、1次元の線の位置0にいます。今|歩く[i]|歩いた歩数を表します。そして、walk [i]が正の場合、右に歩いたことを示し、左に負の場合を示します。歩くとき、1つのブロック、つまり次または前の整数位置を移動します。少なくとも目標回数だけ歩いたブロックの数を見つける必要があります。 したがって、入力がwalks =[3、-7、2] target =2の場合、出力は5になります。次の図から、[0、1]、[1、2]、[2 、3]、[-4、-3]、[-3、-2]はk=2回カバーされます。 これを解決するには、次の手順に従います-
-
配列内の反転をカウントするPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。必要な反転をカウントして表示する必要があります。 反転カウントは、配列をソートするために必要なステップ数をカウントすることによって取得されます。 次に、以下の実装のソリューションを見てみましょう- 例 # count def InvCount(arr, n): inv_count = 0 for i in range(n): for j in range(i + 1, n):