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

色付きのセルにドミノを正しい順序で配置できるかどうかを確認するC++プログラム


n、k1、k2、w、bの5つの数があるとします。 2 x nセルと最初の行の最初のk1セル、2番目の行の最初のk2セルが白で表示されているボードがあります。他のすべてのセルは黒です。 w個の白いドミノとb個の黒いドミノ(2 x 1サイズ)があります。両方のボードのセルが白で、他のドミノによって占有されていない場合は、ボードに白いドミノを配置できます。同様に、両方のセルが黒で、他のドミノによって占有されていない場合は、黒のドミノを配置できます。水平方向と垂直方向の両方に配置されている場合、すべてのw + bドミノをボードに配置できるかどうかを確認する必要がありますか?

したがって、入力がn=5のような場合。 k1 =4; k2 =3; w =3; b =1の場合、出力はTrueになります。

ステップ

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

if 2 * w <= (k1 + k2) and 2 * b <= (n - k1 + n - k2), then:
   return true
Otherwise
   return false

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

#include <bits/stdc++.h>
using namespace std;

bool solve(int n, int k1, int k2, int w, int b) {
   if (2 * w <= (k1 + k2) && 2 * b <= (n - k1 + n - k2)) {
      return true;
   }
   else {
      return false;
   }
}
int main() {
   int n = 5;
   int k1 = 4;
   int k2 = 3;
   int w = 3;
   int b = 1;
   cout << solve(n, k1, k2, w, b) << endl;
}

入力

5, 4, 3, 3, 1

出力

1

  1. C++で3つのポイントが同一線上にあるかどうかをチェックするプログラム

    3つの異なる値のポイントが与えられ、タスクはポイントが同一線上にあるかどうかを確認することです。 ポイントが同じ線上にある場合は同一線上にあると言われ、異なる線上にある場合は同一線上にありません。以下に、同一線上および非同一線上の点の図を示します。 入力 x1 = 1, x2 = 2, x3 = 3, y1 = 1, y2 = 4, y3 = 5 出力 no points are not collinear 入力 x1 = 1, y1 = 1, x2 = 1, y2 = 4, x3 = 1, y3 = 5 出力 points are collinear 以下のプログラム

  2. C++でべき等行列をチェックするプログラム

    行列M[r][c]が与えられた場合、「r」は行数を示し、「c」はr=cが正方行列を形成するような列数を示します。与えられた正方行列がべき等行列であるかどうかを確認する必要があります かどうか。 べき等行列 行列「M」はべき等行列と呼ばれます 行列「M」にそれ自体を掛けたものだけが同じ行列「M」を返す場合、つまり M * M=M。 以下の例のように- 上記の行列はそれ自体で乗算され、同じ行列を返すと言えます。したがって、マトリックスはIデポテンツマトリックスです。 。 例 Input: m[3][3] = { {2, -2, -4},    {-1, 3,