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

Pythonで飲むことができるウォーターボトルの最大数を見つけるためのプログラム


フルウォーターボトルがn個あるとすると、m個の空のウォーターボトルを1本のフルウォーターボトルに交換できます。今、完全な水のボトルを飲むと、それは空のボトルになります。飲むことができる水のボトルの最大数を見つける必要があります。

したがって、入力がn =9、m =3の場合、最初は9本のボトルがあるため、出力は13になります。したがって、すべてのボトルを飲んだ後、すべてを飲んだ後、9/3=3本のフルボトルを取得できます。空のボトルが3つあり、それらを使用して1つ購入して飲むことができるので、9 + 3 + 1=13本のボトルを完成させました。

これを解決するには、次の手順に従います-

  • x:=n、s:=0、k:=0

  • x> =mの場合、実行

    • k:=x mod m

    • x:=x/mの商

    • s:=s + x

    • x:=x + k

  • n+sを返す

例(Python)

理解を深めるために、次の実装を見てみましょう-

def solve(n, m):
   x=n
   s=0
   k=0
   while x >= m:
      k=x % m
      x=x // m
      s=s + x
      x=x + k
   return n + s

n = 9
m = 3
print(solve(n, m))

入力

9, 3

出力

13

  1. カットされたキューブの数を調べるPythonプログラム

    次元a、b、およびcのいくつかの立方体があり、それらを使用して、次元axbxcの新しいボックスが作成されたとします。 a、b、およびcは互いに素です。 gcd(a、b)=gcd(b、c)=gcd(c、d)=1.図に示すように、ボックスを1つのスライスで2つに切断する必要があります。箱がこのようにカットされているかどうか、いくつの立方体が2つのピースにカットされているかを確認する必要があります。可能な3次元を含む配列が提供されており、そこから答えを見つける必要があります。 カットは、頂点P、Q、およびRを通過する平面になるようにこのように行われます。 したがって、入力がn =3、inp

  2. Pythonで捕まえることができる雨の総量を見つけるためのプログラム

    n個の非負の整数の配列があるとします。これらは、各バーの幅が1である高さを表しており、雨が降った後にどれだけの水を捕まえることができるかを計算する必要があります。したがって、マップは次のようになります- ここでは、8つの青いボックスがあることがわかります。したがって、出力は8になります。 これを解決するには、次の手順に従います- スタックst、water:=0およびi:=0を定義します whilei<身長のサイズ =height [i]の場合、iをスタックにプッシュし、iを1増やします それ以外の場合 x:=スタックトップ要素、スタックからトップを削除 スタックが空でない場合