C++で平行四辺形のすべての可能な座標を検索します
与えられた3つの座標から可能なすべての座標を見つけて、ゼロ以外の領域の平行四辺形を作成します。 A、B、Cが3つの与えられたポイントであり、考えられる状況は3つだけであると仮定します。
- AB、ACは側面、BCは対角線です
- AB、BCは側面、ACは対角線です
- BC、ACは側面、ABは対角線です
したがって、3つの座標が与えられた場合、平行四辺形を生成できる3つの座標のみが可能であると言えます。反対側が等しいので、AD =BC、AB =CDであるため、次のように欠落点Dの座標を計算します-
(Dx-Ax,Dy-Ay) = (Cx-Bx,Cy-By) Dx = Ax+Cx-Bx Dy = Ay+Cy-By
例
#include<iostream> using namespace std; void printPoints(int ax, int ay, int bx, int by, int cx, int cy){ cout << ax + bx - cx << ", " << ay + by - cy <<endl; cout << ax + cx - bx << ", " << ay + cy - by <<endl; cout << cx + bx - ax << ", " << cy + by - ax <<endl; } int main() { int ax = 5, ay = 0; //coordinates of A int bx = 1, by = 1; //coordinates of B int cx = 2, cy = 5; //coordinates of C printPoints(ax, ay, bx, by, cx, cy); }
出力
4, -4 6, 4 -2, 1
-
C++で特定の式のすべての可能な結果を検索します
括弧なしの算術式があるとします。私たちの仕事は、その表現のすべての可能な結果を見つけることです。式が1+2 * 3-4のようであるとすると、これは次のように解釈できます- 1+(2 *(3-4))=1 +(2 * -1)=-1 (1 + 2)*(3-4)=3 * -1 =-3 1 +((2 * 3)-4)=1 +(6-4)=3 ((1 + 2)* 3)-4 =(3 * 3)-4 =5 1+(2 * 3)-4 =1 + 6 – 4 =3 この問題を解決するには、次の手順に従う必要があります- 最初にresを空に設定します すべての演算子xについて、次のように
-
C++でab=cdを満たす配列内のすべてのペア(a、b)と(c、d)を検索します
配列Aがあるとすると、その配列から、ab =cdとなるように2つのペア(a、b)と(c、d)を選択する必要があります。配列A=[3、4、7、1、2、9、8]とします。出力ペアは(4、2)と(1、8)です。これを解決するには、次の手順に従います- i:=0からn-1の場合、do for j:=i + 1 to n-1、do get product =arr [i] * arr [j] 製品がハッシュテーブルに存在しない場合、Hash [product]:=(i、j) 製品がハッシュテーブルに存在する場合は、前の要素と現在の要素を出力します。 例 #include <