Pythonで前後に少数の人がいるn人のラインで可能な位置の数を見つけるためのプログラム
n、a、bの3つの数があるとします。私たちがn人の列に並んでいると考えてください。そして、私たちはラインでの自分の位置に気づいていません。しかし、私たちは、少なくとも私たちの前に何人かの人々がいて、私たちの後ろにせいぜいb人の人々がいることを知っています。可能なポジションの数を見つける必要があります。
したがって、入力がn =10 a =3 b =4の場合、出力は5になります。これは、ラインに10人がいて、少なくとも3人が前にいて、最大で4人が後ろにいるためです。つまり、私たちはどこにでもいます[0、1、2、3、4]。位置0にいるときは、9人が前に、0人が後ろに、というように続きます。
これを解決するには、次の手順に従います-
-
a + b
-
b+1を返す
-
-
a + b> =nの場合、
-
nを返す-a
-
例
理解を深めるために、次の実装を見てみましょう
def solve(n, a, b): if a + b < n: return b + 1 if a + b >= n: return n - a n = 10 a = 3 b = 4 print(solve(n, a, b))
入力
10, 3, 4
出力
5
-
Pythonで数値の三角形の行lの最初のイベント番号の位置を見つけるプログラム
以下のような数の三角形を生成していると仮定します 1 1 1 1 1 2 3 2 1 1 3 6 7 6 3 1 ここで、各行の要素は、その上に3つの数字を追加することによって生成されます。ここで、行番号がlの場合。その行の最初の偶数の位置を見つける必要があります。位置の値は1から始まります。 したがって、入力がl =5の場合、出力は2になります 1 1 1 1 &nb
-
可能なBSTの数を見つけるプログラムは、Pythonのn個の異なるノードを使用して生成できます
数nがあるとします。 [1,2、...、n]のような数がある場合、これらのn個の値を使用して形成できるBSTの数を数える必要があります。答えが大きすぎる場合は、結果を10 ^ 9+7で変更します。 したがって、入力がn =3の場合、出力は14になります。 これを解決するために、次の手順に従います a:=値が[0、1]のリスト m:=10 ^ 9 + 7 max_n:=1000 2からmax_n+1の範囲のkについては、 (1 +リストのすべての要素の合計(a [i] * a [k --i] for all i in range(1、k)))modmをaの最後に挿入します