Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में दिए गए 2 बिंदुओं के बीच 'k' समदूरस्थ बिंदुओं वाले वृत्त में अधिक कोणों की संख्या

हमें एक वृत्त दिया गया है जिसकी परिधि पर K समदूरस्थ बिंदु हैं। साथ ही हमें दो बिंदु A और B दिए गए हैं। लक्ष्य इन बिंदुओं का उपयोग करके संभव त्रिभुजों की संख्या की गणना करना है ताकि उनके अंदर एक अधिक कोण ACB (90o से अधिक कोण) हो। बिंदु A और B ऐसे हैं कि A

C++ में दिए गए 2 बिंदुओं के बीच  k  समदूरस्थ बिंदुओं वाले वृत्त में अधिक कोणों की संख्या

यहाँ K=8, A=2, B=5, बिंदुओं की संख्या=2 (C,C') इस प्रकार है कि कोण LACB, LAC'B अधिक हैं।

आइए उदाहरणों के साथ समझते हैं

इनपुट - के=10, ए=2, बी=4

आउटपुट - 2 दिए गए बिंदुओं के बीच 'k' समदूरस्थ बिंदुओं वाले वृत्त में अधिक कोणों की संख्या है - 1

स्पष्टीकरण - बिंदु C=3 होगा

इनपुट - के=12, ए=2, बी=10

आउटपुट − 2 दिए गए बिंदुओं के बीच 'k' समदूरस्थ बिंदुओं वाले वृत्त में अधिक कोणों की संख्या है - 3

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

यह देखा जा सकता है कि यदि A और B के बीच का चाप जितना छोटा होगा, बिंदु केवल उसी चाप पर होंगे।

दोनों चापों की गणना करें और यदि वे समान लंबाई के हैं तो ऐसा कोई त्रिभुज संभव नहीं है, वापसी 0. अन्यथा छोटे चाप के रूप में गणना करें जो बिंदुओं के संदर्भ में दूरी है।

  • इनपुट को पूर्णांक k, point_a और point_b के रूप में लें।

  • समारोह Obtuse_angle_circle(int point_a, int point_b, int k) सभी चर लेता है और 2 दिए गए बिंदुओं के बीच 'k' समदूरस्थ बिंदुओं वाले वृत्त में अधिक कोणों की गिनती लौटाता है

  • प्रारंभिक गणना 0 के रूप में लें।

  • पहले चाप की गणना arc_1 =(point_b - point_a) - 1 के रूप में करें। (b>a)

  • दूसरे चाप की गणना (k - point_b) + (point_a - 1) के रूप में करें।

  • यदि दोनों चाप बराबर हैं तो 0 लौटाएं क्योंकि ऐसा कोई बिंदु संभव नहीं है।

  • यदि वे असमान हैं तो गिनती को कम से कम दो के रूप में अपडेट करें क्योंकि सभी बिंदु उस पर स्थित हैं।

  • परिणाम के रूप में वापसी की गिनती।

उदाहरण

#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

  1. C++ में कुल n अंक के साथ m कोलिनियर वाले त्रिभुजों की संख्या

    हमें दो चर n और m दिए गए हैं जो एक 2D तल पर बिंदुओं की संख्या को निरूपित करते हैं। n बिंदुओं में से, m बिंदु संरेख हैं। लक्ष्य इन n बिंदुओं का उपयोग करके बनाए जा सकने वाले त्रिभुजों की संख्या ज्ञात करना है। समरेख बिंदु - एक ही रेखा पर स्थित बिंदु संरेख कहलाते हैं। बिंदु A और B संरेख हैं। दिया गय

  1. C++ . में दिए गए वृत्त के दो भागों के कोणों का सबसे छोटा अंतर ज्ञात करने का कार्यक्रम

    इस समस्या में, हमें एक सरणी दी गई है जो एक वृत्त के कोणों के आधार पर एक वृत्त के टुकड़े को दर्शाती है। हमारा कार्य C++ में दिए गए वृत्त के दो भागों के कोणों का सबसे छोटा अंतर खोजने के लिए एक कार्यक्रम बनाना है । समस्या का विवरण - हमें सरणी में वृत्त के सभी टुकड़ों के कोण दिए गए हैं। हमें टुकड़े को

  1. C++ में निर्देशांकों के दिए गए सेट के साथ आयत का न्यूनतम क्षेत्रफल ज्ञात कीजिए

    मान लीजिए कि हमारे पास XY विमान में कुछ बिंदुओं की एक सरणी है। हमें इन बिंदुओं से बनने वाले आयत का न्यूनतम क्षेत्रफल ज्ञात करना है। आयत की भुजा X और Y अक्षों के समानांतर होनी चाहिए। यदि हम आयत नहीं बना सकते हैं, तो 0 लौटाएँ। इसलिए यदि बिंदुओं का सरणी [(1, 1), (1, 3), (3, 1), (3, 3), (2, 2)] जैसा है।