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

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

  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について、次のように

  2. 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 <