パターンをチェックするC++コードが中心対称かどうか
'X'と'。'の3x3行列があるとします。パターンが中心対称かどうかを確認する必要があります。 (中心対称性の詳細-http://en.wikipedia.org/wiki/Central_symmetry)
したがって、入力が次のような場合
X | X | 。 |
。 | 。 | 。 |
。 | X | X |
その場合、出力はTrueになります。
ステップ
これを解決するには、次の手順に従います-
if M[0, 0] is same as M[2, 2] and M[0, 1] is same as M[2, 1] and M[0, 2] is same as M[2, 0] and M[1, 0] is same as M[1, 2], then: return true Otherwise return false
例
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; bool solve(vector<vector<char>> M){ if (M[0][0] == M[2][2] && M[0][1] == M[2][1] && M[0][2] == M[2][0] && M[1][0] == M[1][2]) return true; else return false; } int main(){ vector<vector<char>> matrix = { { 'X', 'X', '.' }, { '.', '.', '.' }, { '.', 'X', 'X' } }; cout << solve(matrix) << endl; }
入力
{ { 'X', 'X', '.' }, { '.', '.', '.' }, { '.', 'X', 'X' } }
出力
1
-
ツリーがC++で同形であるかどうかを確認します
二分木では、各ノードに2つの子、つまり左の子と右の子が含まれます。 2つの二分木があり、タスクは、ツリーの1つが、別のツリーを左にひっくり返すことによって取得できるかどうかを確認することであると仮定します。 左側にある他のツリーを反転して取得できる場合、ツリーは同型です。 例 入力-1 出力: 同形 説明: 与えられたTree-2は、左側のTree-1を反転することで取得できるため、Treeは同型です。 この問題を解決するためのアプローチ この特定の問題を解決するための再帰的なアプローチは、ブール関数が両方のツリーのルートノードをチェックすることです。両方のツリーの
-
番号がC++でクリシュナムルシー番号であるかどうかを確認します
ここでは、クリシュナムルティ番号かどうかを確認する方法を説明します。各桁の階乗の合計が数値と同じである場合、数値はクリシュナムルティ数です。たとえば、数値が145の場合、sum =1! + 4! + 5! =1 + 24 + 120 =145。つまり、これはクリシュナムルティの数です。 論理は単純で、各数の階乗を見つけて合計を見つける必要があります。それが与えられた数と同じである場合、その数はクリシュナムルティ数です。より良いアイデアを得るためにコードを見てみましょう。 例 #include <iostream> #include <cmath>> using