最小最大除去ゲーム後に最終的な数を見つけるためのC++コード
n個の要素を持つ配列Aがあるとします。ボードにはn個の数字が書かれています。 AmalandBimalはターン制のゲームをプレイしています。各ターンで、彼らは番号を選択し、それをボードから削除します。アマルが最初にプレイします。アマルはボードに残した最後の数を最小化したいと考えており、ビマルはそれを最大化したいと考えています。ボードに残る番号を見つける必要があります。
したがって、入力がA =[2、1、3]の場合、出力は2になります。これは、Amalが3を削除するため、Bimalが1を削除するため、最終的な数値は2になります。
ステップ
これを解決するには、次の手順に従います-
n := size of A sort the array A return A[floor of ((n - 1)/2)]
例
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; int solve(vector<int> A){ int n = A.size(); sort(A.begin(), A.end()); return A[(n - 1) / 2]; } int main(){ vector<int> A = { 2, 1, 3 }; cout << solve(A) << endl; }
入力
{ 2, 1, 3 }
出力
2
-
C++を使用してN回移動した後の三角形の数を見つける
記事では、最初に、色付きの三角形を描画する必要があります。色のない三角形を取り、三角形を4つの小さな等辺に分割する必要があります。同じ面積の三角形をn番目のステップまで続けて、図に存在する正三角形の数を見つけます。 解決策を見つけるためのアプローチ このソリューションには2つのアプローチがあり、それらは- ブルートフォースアプローチ 三角形の数は、ステップごとにいくらか増加し続ける(3 * previous_number + 2ずつ増加する)ことがわかります。したがって、nまでループを実行して、三角形の数を計算できます。 例 #include <iostream> using
-
C++で数字の礼儀正しさを見つける
この問題では、正の整数Nが与えられます。私たちのタスクは、数値の丁寧さを見つけることです。 丁寧数 は、2つ以上の連続した数の合計として表すことができる数です。 数の礼儀正しさ は、連続する整数の合計として数を表すことができる方法の数として定義されます。 問題を理解するために例を見てみましょう 入力 n = 5 出力 1 説明 2 + 3 = 5, is the only consecutive sum. ソリューションアプローチ この問題の簡単な解決策は、Nまでのすべての連続する数字をチェックし、それらの合計がNに等しい場合は、数字の丁寧さであるカウントを増やすことです。 このソ