ゲーム内でnから始まる最小数を見つけるためのC++コード
数nがあるとします。ゲームでは、最初はnの値はvであり、プレーヤーは次の操作を0回以上実行できます。x
したがって、入力がn =8の場合、プレーヤーは最初のターンでx =3を選択できるため、出力は1になり、nは5になります。次に、2番目のターンでx =4を選択して、nを取得できます。 =1結果として。
これを解決するには、次の手順に従います-
理解を深めるために、次の実装を見てみましょう-ステップ
if n is same as 2, then:
return 2
return 1
例
#include <bits/stdc++.h>
using namespace std;
int solve(int n){
if (n == 2){
return 2;
}
return 1;
}
int main(){
int n = 8;
cout << solve(n) << endl;
}
入力
8
出力
1
-
C++でNからMに到達するための最小ステップ数を見つけます
2つの整数NとMがあるとします。与えられた操作を実行して、NからMに到達するための最小ステップ数を見つける必要があります- 数値xに2を掛けると、xは2*xになります 数値xから1を引くと、数値はx –1になります N=4およびM=6の場合、出力は2になります。したがって、Nに対して操作番号2を実行すると、Nは3になり、更新されたNの値に対して操作番号1を実行すると、2 * 3=6になります。したがって、最小ステップ数は2になります。 この問題を解決するために、次のルールに従います- Mから始まる数Nを取るように、問題を元に戻すことができるので、新しい2つの操作が行われます
-
C ++を使用して、数の因数の最小合計を求めます。
ここでは、与えられた数の因子の最小合計を取得する方法を見ていきます。数が12であると仮定します。これはさまざまな方法で因数分解できます- 12 =12 * 1(12 + 1 =13) 12 =2 * 6(2 + 6 =8) 12 =3 * 4(3 + 4 =7) 12 =2 * 2 * 3(2 + 2 + 3 =7) 最小の合計は7です。数値を取り、最小の因子の合計を見つけようとします。最小の因数分解の合計を取得するには、可能な限り数を因数分解する必要があります。言い換えれば、素因数を足して合計Sを求めようとすると、その合計は最小化されると言えます。 例 #include<