Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหาว่าสามารถหมุนหน้าเป็นมุมได้หรือไม่ใน C++


ในปัญหานี้ เราได้รับพิกัดสามจุดที่อยู่บนหน้า งานของเราคือ ค้นหาว่าสามารถหมุนหน้าเป็นมุมได้หรือไม่

การหมุนหน้าทำในลักษณะที่ตำแหน่งใหม่ของ 'x' เป็นตำแหน่งเก่าของ 'y' ตำแหน่งใหม่ของ 'y' คือตำแหน่งเดิมของ 'z' และพิมพ์คำว่า “ใช่” หรือ “ไม่ใช่” ตามการหมุน

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

ป้อนข้อมูล: x =(0, 1), y =(1, 0), z =(0, -1)

ผลลัพธ์: ใช่

คำอธิบาย:

ค้นหาว่าสามารถหมุนหน้าเป็นมุมได้หรือไม่ใน C++

หมุนหน้าได้ 90 o .

แนวทางแก้ไข:

เราสามารถหมุนหน้าได้บางมุมหากมีเงื่อนไขบางประการ

สามารถทำได้ถ้าระยะทางระหว่าง x และ y เท่ากับระยะทางระหว่าง y และ z นอกจากนี้ หากจุดทั้งหมดอยู่ในการหมุนเส้นเดียวกันไม่สามารถทำได้

โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา

ตัวอย่าง

#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