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

C++のビール瓶


番号nが1つあるとします。ここで、nはn本のフルビール瓶を示します。空のビール瓶3本をフルビール瓶1本に交換できる場合は、飲むことができるビール瓶の数を見つける必要があります。

したがって、入力が10のような場合、出力は14になります。

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

  • 関数solve()を定義します。これにはnが必要です。

  • ret:=0

  • n> =3の場合、-

    • q:=n / 3

    • ret:=ret + q * 3

    • n:=n-q * 3

    • n:=n + q

  • ret:=ret + n

  • retを返す

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int solve(int n) {
      int ret = 0;
      while(n >= 3){
         int q = n / 3;
         ret += q * 3;
         n -= q * 3;
         n += q;
      }
      ret += n;
      return ret;
   }
};
main() {
   Solution ob;
   cout << ob.solve(10);
}

入力

10

出力

14

  1. C++でゲームVをジャンプする

    arrと呼ばれる整数の配列と整数dがあるとします。 1つのステップで、インデックスiから-にジャンプできます。 i + xここで、i +x

  2. C++の4つの除数

    整数配列numsがあるとすると、正確に4つの除数を持つその配列内の整数の約数の合計を見つける必要があります。したがって、配列にそのような整数がない場合は、0を返します。たとえば、入力が[21、4、7]の場合、21には4つの除数1、3、7、21があるため、出力は32になります。 4には3つの除数1、2、4があり、7には2つの除数1と7があります。答えは21の約数の合計のみです。 これを解決するには、次の手順に従います- ok()というメソッドを定義します。これはxを入力として受け取ります ret:=1 + x、cnt:=2 i:=2の場合、i ^ 2 <=x、iを1増やしま