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

การนับมุมป้านในวงกลมที่มีจุดเท่ากัน 'k' ระหว่าง 2 จุดที่กำหนดใน C ++


เราได้วงกลมที่มีจุด K เท่ากันบนเส้นรอบวง นอกจากนี้เรายังได้รับจุด A และ B สองจุด เป้าหมายคือการนับจำนวนสามเหลี่ยมที่เป็นไปได้โดยใช้จุดเหล่านี้เพื่อให้มีมุมป้าน ACB (มุมที่มากกว่า 90o) อยู่ภายใน จุด A และ B เท่ากับ A

การนับมุมป้านในวงกลมที่มีจุดเท่ากัน  k  ระหว่าง 2 จุดที่กำหนดใน C ++

ในที่นี้ K=8, A=2, B=5, การนับคะแนน=2 (C,C’) โดยที่มุม LACB, LAC’B จะเป็นมุมป้าน

ให้เราเข้าใจด้วยตัวอย่าง

ป้อนข้อมูล − k=10, A=2, B=4

ผลผลิต − จำนวนมุมป้านในวงกลมที่มีจุดเท่ากัน 'k' ระหว่าง 2 จุดที่กำหนดให้คือ − 1

คำอธิบาย − จุดจะอยู่ที่ C=3

ป้อนข้อมูล − k=12, A=2, B=10

ผลผลิต − จำนวนมุมป้านในวงกลมที่มีจุดเท่ากัน 'k' ระหว่าง 2 จุดที่กำหนดให้คือ − 3

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

จะเห็นได้ว่าถ้าส่วนโค้งที่เล็กกว่าระหว่างจุด A และจุด B จะอยู่บนส่วนโค้งนั้นเท่านั้น

คำนวณส่วนโค้งทั้งสอง และหากมีความยาวเท่ากัน จะไม่มีสามเหลี่ยมดังกล่าว ให้คืนค่า 0 มิฉะนั้น ชุดนั้นจะนับเป็นส่วนโค้งที่เล็กกว่าซึ่งเป็นระยะทางในรูปของจุด

  • รับอินพุตเป็นจำนวนเต็ม k, point_a และ point_b

  • ฟังก์ชัน Obtuse_angle_circle(int point_a, int point_b, int k) รับตัวแปรทั้งหมดและส่งกลับจำนวนมุมป้านในวงกลมที่มีจุดเท่ากัน 'k' ระหว่าง 2 จุดที่กำหนด

  • นับเริ่มต้นเป็น 0

  • คำนวณส่วนโค้งแรกเป็น arc_1 =(point_b - point_a) - 1. (b>a)

  • คำนวณส่วนโค้งที่สองเป็น (k - point_b) + (point_a - 1)

  • หากส่วนโค้งทั้งสองเท่ากัน ให้คืนค่า 0 เนื่องจากไม่มีจุดดังกล่าว

  • หากค่าไม่เท่ากัน ให้นับการอัปเดตเป็นอย่างน้อย 2 เนื่องจากคะแนนทั้งหมดอยู่บนนั้น

  • ผลตอบแทนนับเป็นผลลัพธ์

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
int Obtuse_angle_circle(int point_a, int point_b, int k){
   int count = 0;
   int arc_1 = (point_b - point_a) - 1;
   int arc_2 = (k - point_b) + (point_a - 1);
   if (arc_1 == arc_2){
      return 0;
   }
   count = min(arc_1, arc_2);
   return count;
}
int main(){
   int k = 10;
   int point_a= 1;
   int point_b = 4;
   cout<<"Count of obtuse angles in a circle with ‘k' equidistant points between 2 given pointsare: "<<Obtuse_angle_circle(point_a, point_b, k);
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

Count of obtuse angles in a circle with ‘k' equidistant points between 2 given points are: 2