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

C ++で、指定された座標から目的の座標に移動できるかどうかを確認します


2つの座標(sx、sy)と(tx、ty)があるとすると、始点から終点に移動できるかどうかを確認する必要があります。ここで移動できるのは、点(x、y)を取得し、それを(x、x + y)または(x + y、y)に変換することです。

したがって、入力が(1、1)と(4,5)の場合、答えは真になります。これは、(1,1)を(2,1)、次に(3,1)、次に(4)に移動するためです。 、1)、次に(4,5)。

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

  • tx>sxおよびty>syの場合、-
      を実行します。
    • tx> tyの場合、-
      • tx:=tx mod ty
    • それ以外の場合
      • ty:=ty mod tx
  • return(sxがtxANDsyと同じ場合はtrue<=ty AND(ty --sy)mod txは0と同じ)OR(syはty AND x> =sx AND(tx --sx)modtyと同じは0)

例(C ++)

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

#include <bits/stdc++.h>
using namespace std;
bool solve(int sx, int sy, int tx, int ty) {
   while(tx > sx && ty > sy){
      if(tx > ty){
         tx %= ty;
      }else ty %= tx;
   }
   return (sx == tx && sy <= ty && (ty - sy) % tx == 0) || (sy == ty && tx >= sx && (tx - sx) % ty == 0);
}
main(){
   cout << solve(1,1,4,5);
}

入力

1, 1, 4, 5

出力

1

  1. C ++を使用して、指定されたポイントから可能な四辺形の数を見つけます

    四辺形は、ユークリッド平面幾何学で4つの頂点と4つのエッジを持つポリゴンを形成します。名前4-gonなど。四辺形の他の名前に含まれ、正方形、表示スタイルなどとしても知られています。 この記事では、与えられた点から可能な四辺形の数を見つけるためのアプローチを説明します。この問題では、デカルト平面に提供された4つの点(x、y)を使用して作成できる四辺形の数を調べる必要があります。だからここに与えられた問題の例があります- Input : A( -2, 8 ), B( -2, 0 ), C( 6, -1 ), D( 0, 8 ) Output : 1 Explanation : One quadr

  2. 特定のバイナリツリーがC++のSumTreeであるかどうかを確認します

    ここでは、二分木が和木であるかどうかを確認する方法を説明します。ここで問題となるのは、合計ツリーとは何かです。合計ツリーは、ノードがその子の合計値を保持する二分木です。ツリーのルートには、その下にあるすべての要素の合計が含まれます。これは合計ツリーの例です- これを確認するために、簡単なトリックに従います。合計値がルートと同じである場合は、左右のサブツリー要素の合計を見つけます。これが合計ツリーです。これは再帰的なアプローチの1つになります。 例 #include <bits/stdc++.h> using namespace std; class node {