Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで3つの数値をゼロにする


3つの数字があるとしましょう。タスクは、これらすべての数値を「0」にするための最適なステップの総数をカウントすることです。

入力-1:

a = 4
b = 4
c = 6

出力:

7

説明:

すべての数値を「0」にするための最適なステップの総数は、

です。

(4、4、6)

1番目と2番目の数値から「1」を削除する=(3、3、6)

1番目と3番目の数値から「1」を削除する=(2、3、5)

1番目と3番目の数値から「1」を削除する=(1、3、4)

1番目と3番目の数値から「1」を削除する=(0、3、3)

2番目と3番目の数値から「1」を削除する=(0、2、2)

2番目と3番目の数値から「1」を削除する=(0、1、1)

2番目と3番目の数値から「1」を削除する=(0、0、0)

したがって、すべての数値をゼロにするための合計ステップ数は「7」です

この問題を解決するためのアプローチ

この特定の問題を解決するために、これら2つの数値の合計が最後の数値よりも大きくなるように、任意の2つの数値から「1」を削除します。ゼロにするための最小ステップ数を見つけるために、最小ステップ数を計算します。

  • 入力として3つの数字を取ります。
  • sort を使用して、番号を昇順で並べ替えます
  • 2つの数値の合計が3番目の数値よりも小さいかどうかを確認してから、合計を返します。
  • 毎回、任意の2つの数値から「1」を削除するため、すべての数値を「0」にするために(n1 + n2 + n3)/2ステップかかります。

def maxScore(a: int, b: int, c: int):
   a, b, c = sorted((a, b, c))
   if a + b < c: return a + b
   return (a + b + c)//2
a=4
b=4
c=6
print(maxScore(a,b,c))      

上記のコードを実行すると、次のように出力が生成されます

出力

7

与えられた入力a=4、b =4、c =6の場合、すべての数値を「0」にするために7つのステップが必要です。したがって、プログラムは出力として7を返します。


  1. Pythonの3の力

    番号nがあるとします。数が3の累乗であるかどうかを確認する必要があります。したがって、数値がn =27、つまり3の累乗のような場合、結果はtrueになり、n =15の場合、falseになります。 これを解決するには、次の手順に従います- これを解決するために対数を使用します [log10(n)/ log10(3)] mod 1 ==0の場合、3の累乗になります。それ以外の場合は、そうではありません 例 理解を深めるために、次の実装を見てみましょう- class Solution(object):    def isPowerOfThree(self, n): &n

  2. Pythonの単一の数値

    配列Aがあるとします。この配列には、2回出現する多数の数値があります。一度に見つけることができる要素は1つだけです。その配列からその要素を見つける必要があります。 A =[1、1、5、3、2、5、2]とすると、出力は3になります。各数値が2回あるため、XORを実行してその要素をキャンセルできます。 y XOR y =0がわかっているからです これを解決するために、次の手順に従います。 1つの変数res=0を取ります 配列Aの各要素eについて、プリフォームres =res XOR e return res 例 理解を深めるために、次の実装を見てみましょう- class Soluti