C++で3つの数値をゼロにする
3つの数字があるとしましょう。タスクは、これらすべての数値を「0」にするための最適なステップの総数をカウントすることです。
例
入力-1:
a = 4 b = 4c = 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として返します。
-
C++でのデュードニー番号
与えられた数の底の数理論で定義された数は、最初の自然数の桁の合計が2番目の数の桁の合計に等しくなるように、別の自然数の完全な3乗に等しい自然数です。 (ウィキペディア)。 番号はヘンリー・デュードニーによって発見されました 。その数式 は- ここでは、整数nが与えられます。私たちの仕事は、与えられた番号nが人物番号であるかどうかを確認することです。 問題を理解するために例を見てみましょう 入力: N =17592 出力: いいえ 説明: 与えられた番号はダドニー番号ではありません。 ソリューションアプローチ- 解決策は、デュードニー番号の基本的な定義にあります。
-
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