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

C++で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つの数字を取ります。
  • 2つの数値の合計、たとえば「a」と「b」が「c」より大きく、a> 0、b> 0であるかどうかを確認し、「a」と「b」から「1」を削除します。
  • 回答から最小値を見つけて、結果を返します。

#include <bits/stdc++.h>
using namespace std;
int maxSteps(int a, int b, int c) {
   int res = 0;
   while (a + b > c and a > 0 and b > 0) {
      a--;
      b--;
      res++;
   }
   res += min(c, a + b);
   return res;
}
int main() {
   int a = 4;
   int b = 4;
   int c = 6;
   cout << maxSteps(a, b, c) << endl;
   return 0;
}

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

出力

7

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


  1. C++でのデュードニー番号

    与えられた数の底の数理論で定義された数は、最初の自然数の桁の合計が2番目の数の桁の合計に等しくなるように、別の自然数の完全な3乗に等しい自然数です。 (ウィキペディア)。 番号はヘンリー・デュードニーによって発見されました 。その数式 は- ここでは、整数nが与えられます。私たちの仕事は、与えられた番号nが人物番号であるかどうかを確認することです。 問題を理解するために例を見てみましょう 入力: N =17592 出力: いいえ 説明: 与えられた番号はダドニー番号ではありません。 ソリューションアプローチ- 解決策は、デュードニー番号の基本的な定義にあります。

  2. 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