Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 페이지를 비스듬히 회전할 수 있는지 여부 찾기

<시간/>

이 문제에서는 페이지에 있는 세 점의 좌표가 제공됩니다. 우리의 임무는 페이지를 비스듬히 회전할 수 있는지 여부를 찾는 것입니다.

페이지의 회전은 'x'의 새 위치가 'y'의 이전 위치이고 'y'의 새 위치가 'z'의 이전 위치가 되는 방식으로 이루어집니다. 그리고 회전에 따라 "예" 또는 "아니오"를 인쇄합니다.

문제를 이해하기 위해 예를 들어 보겠습니다.

입력: x =(0, 1), y =(1, 0), z =(0, -1)

출력:

설명:

<강한> C++에서 페이지를 비스듬히 회전할 수 있는지 여부 찾기

페이지를 90 o 회전할 수 있습니다. .

해결 방법:

조건이 있으면 페이지를 어느 정도 회전할 수 있습니다.

x와 y 사이의 거리 인 경우 이 작업을 수행할 수 있습니다. y와 z 사이의 distance과 같습니다. 또한 모든 점이 같은 선상에 있으면 회전이 불가능합니다.

우리 솔루션의 작동을 설명하는 프로그램,

예시

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

int possibleOrNot(int coordinates[3][2]){
   
   long long dis1 = pow(coordinates[1][0] - coordinates[0][0], 2) + pow(coordinates[1][1] - coordinates[0][1], 2);
   long long dis2 = pow(coordinates[2][0] - coordinates[1][0], 2) + pow(coordinates[2][1] - coordinates[1][1], 2);

   if(dis1 != dis2)
      return 0;
   else if (coordinates[1][0] == ((coordinates[0][0] + coordinates[2][0]) / 2.0) &amp;&amp; coordinates[1][1] == ((coordinates[0][1] + coordinates[2][1]) / 2.0))
      return 0;
   else
      return 1;
}

int main() {
   
   int coordinates[3][2] = {{0 , 1}, {1 , 0}, {0, -1} } ;
   if ( possibleOrNot(coordinates))
      cout<<"The rotation of page is possible";
   else
      cout<<"The rotation of page is not possible";
   
   return 0;
}

출력

The rotation of page is possible