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

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

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

समस्या का विवरण - हमें सरणी में वृत्त के सभी टुकड़ों के कोण दिए गए हैं। हमें टुकड़े को इस तरह मिलाना है कि बने दो टुकड़ों में कोण का सबसे छोटा अंतर हो।

समस्या को समझने के लिए एक उदाहरण लेते हैं

इनपुट

ang[] = {90, 45, 90, 135}

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

आउटपुट

90

स्पष्टीकरण

पहली और दूसरी को एक साथ लेना यानी 90 + 45 =135.

तीसरा और चौथा एक साथ लेना यानी 90 + 135 =225

अंतर =225 - 135 =90

समाधान दृष्टिकोण

यहाँ, हमें दो भागों को बनाने के लिए सभी भागों को मिलाना होगा। और उसके लिए, हमें निरंतर भाग लेने की आवश्यकता है (उदाहरण के लिए हम ang1 और ang3 को एक साथ नहीं ले सकते हैं)।

मान लें कि part1 का कोण A है।

तब भाग 2 का कोण 360 - A होगा।

अंतर होगा |ए - (360 - ए) |। हमने निरपेक्ष मान लिया है क्योंकि केवल सकारात्मक कोण ही हो सकते हैं।

अंतर समीकरण को हल करना,

2 * |A - 180|, यह न्यूनतम मान होना चाहिए। और उसके लिए, हम वृत्त के सभी संभावित भागों को मिलाने का प्रयास करेंगे और (2*|A - 180|) के लिए न्यूनतम मान ज्ञात करेंगे।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम

उदाहरण

#include <iostream>
#include <math.h>
using namespace std;
int CalcSmallDiffAng(int ang[], int n) {
   int Left = 0, A = 0, minDiff = 360;
   for (int i = 0; i < n; i++) {
      A += ang[i];
      while (A >= 180) {
         minDiff = min(minDiff, 2 * abs(180 - A));
         A -= ang[Left];
         Left++;
      }
      minDiff = min(minDiff, 2 * abs(180 - A));
   }
   return minDiff;
}
int main() {
   int ang[] = { 90, 45, 90, 135 };
   int n = sizeof(ang) / sizeof(ang[0]);
   cout<<"The smallest difference of angles of two parts of a given
   circle is "<<CalcSmallDiffAng(ang, n);
   return 0;
}

आउटपुट

The smallest difference of angles of two parts of a given circle is 90
. है
  1. C++ में वृत्त की परिधि ज्ञात करने का कार्यक्रम

    इस ट्यूटोरियल में, हम एक वृत्त की परिधि को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें वृत्त की त्रिज्या प्रदान की जाएगी। हमारा काम उस सर्कल की परिधि की गणना और प्रिंट करना है। उदाहरण #include<bits/stdc++.h> using namespace std; #define PI 3.1415 double circumference(double r){ &

  1. सी ++ प्रोग्राम दो दिए गए स्ट्रिंग्स में असामान्य वर्ण खोजने के लिए

    इस लेख में, हम दो अलग-अलग दिए गए स्ट्रिंग्स की तुलना के दौरान असामान्य वर्णों का पता लगाने के लिए एक कार्यक्रम पर चर्चा करेंगे। जैसा कि हम जानते हैं, तार और कुछ नहीं बल्कि पात्रों की एक सरणी है। इसलिए, तुलना के लिए हम एक स्ट्रिंग के वर्णों के माध्यम से खोजेंगे और साथ ही यह जांचेंगे कि क्या वह तत्व

  1. C++ प्रोग्राम जटिलता बाधा के साथ n तत्वों में से दूसरा सबसे छोटा खोजने के लिए

    यह एक C++ प्रोग्राम है जो दिए गए जटिलता बाधा के साथ n तत्वों में से दूसरा सबसे छोटा खोजने के लिए है। एल्गोरिदम Begin    function SecondSmallest() :       /* Arguments to this function are:          A pointer array a.