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

ट्रिपलेट्स की संख्या की गणना करें (ए, बी, सी) जैसे कि ए^2 + बी^2 =सी^2 और 1<=a<=b<=c<=n C++ में


हमें एक पूर्णांक n दिया गया है। लक्ष्य त्रिक (3 संख्याओं का सेट) को खोजना है जो शर्तों को पूरा करते हैं -

  • 2 +बी 2 =c 2

  • 1<=a<=b<=c<=n

हम 1<=a<=n और 1<=b<=n के मानों के लिए दो लूप चलाकर ऐसा करेंगे। तदनुसार c की गणना करें (c=sqrt(a2+b2 )) और अगर 1 और 2 दोनों शर्तें पूरी होती हैं तो वेतन वृद्धि की गणना करें।

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

इनपुट -एन=5

आउटपुट - त्रिकों की संख्या - 1

स्पष्टीकरण -

for a=3, b=4 and c=5 both conditions are met.

इनपुट -एन=3

आउटपुट − त्रिगुणों की संख्या − 0

स्पष्टीकरण -

ऐसा कोई ट्रिपलेट नहीं जो शर्तों 1 और 2 को पूरा करता हो।

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

  • पूर्णांक एन श्रेणी की अंतिम सीमा [1,N] संग्रहीत करता है।

  • फंक्शन काउंटट्रिपलेट्स(इंट एन) एन लेता है और ए की शर्तों को पूरा करने वाले ट्रिपलेट्स की गिनती देता है 2 +बी 2 =c 2 और 1<=a<=b<=c<=n

  • वैरिएबल काउंट ऐसे ट्रिपलेट्स की संख्या को स्टोर करता है, शुरुआत में 0.

  • परिवर्तनीय योग a और b के वर्गों के योग को संग्रहीत करता है।

  • a=1 से n तक और b=a से n तक, sum=a*a+b*b और c को योग के वर्गमूल (sqrt(sum)) के रूप में परिकलित करें।

  • यदि परिकलित c का मान ऐसा है कि c*c==sum और b<=c &&c<=n (शर्त 1 और 2 दोनों मिले हैं)।

  • वर्तमान ए, बी, सी के रूप में वृद्धि की गणना दोनों शर्तों को पूरा करती है।

  • इसे a=n और b=n तक करें। अंत में, गिनती में ऐसे कई ट्रिपल होंगे जो शर्तों को पूरा करते हैं।

  • वांछित परिणाम के रूप में गिनती लौटाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int countTriplets(int n){
   int count = 0;
   int a,b,c;
   a=b=c=1;
   int sum=0;
   for (a = 1; a <= n; a++) //1<=a<=n{
      for (b = a; b <= n; b++) //1<=a<=b<=n{
         sum = a*a + b*b; //a^2 + b^2 =c^2
         c = sqrt(sum);
         if (c * c == sum && b<=c && c<=n) //check 1<=a<=b<=c<=n{
            count++;
            cout<<endl<<"a :"<<a<<" b :"<<b<<" c :"<<c; //to print triplets
         }
      }
   }
   return count;
}
int main(){
   int N = 15;
   cout <<endl<< "Number of triplets : "<<countTriplets(N);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Number of triplets :
a :3 b :4 c :5
a :5 b :12 c :13
a :6 b :8 c :10
a :9 b :12 c :154
Number of triplets : 4

  1. x और y के सबसे छोटे मान इस प्रकार ज्ञात कीजिए कि C++ . में ax - by =0 हो

    मान लीजिए हमारे पास दो मान a और b हैं। हमें x और y को इस प्रकार ज्ञात करना है कि ax – by =0. तो यदि a =25 और b =35, तो x =7 और y =5। इसे हल करने के लिए, हमें a और b के एलसीएम की गणना करनी होगी। a और b का LCM सबसे छोटा मान होगा जो दोनों पक्षों को बराबर बना सकता है। LCM को इस सूत्र का उपयोग करके संख्

  1. सबसे छोटी संख्या K इस प्रकार ज्ञात कीजिए कि C++ में K% p =0 और q% K =0 हो

    मान लीजिए हमारे पास दो पूर्णांक P और Q हैं। हमें सबसे छोटी संख्या K ज्ञात करनी है, जैसे कि K mod P =0 और Q mod K =0। अन्यथा प्रिंट -1। तो अगर पी और क्यू 2 और 8 हैं, तो के 2 होगा। 2 मोड 2 =0, और 8 मोड 2 =0 के रूप में। K को संभव बनाने के लिए, Q को P से विभाज्य होना चाहिए। इसलिए यदि P mod Q =0 है तो P

  1. ऐसी संख्या x ज्ञात कीजिए कि C++ में x और उसके अंकों का योग दिए गए n के बराबर हो

    यहां हम एक समस्या देखेंगे, जहां हम एक संख्या n लेते हैं, हमें एक और मान x ज्ञात करना होता है, जैसे कि x का x + अंकों का योग दी गई संख्या n के समान हो। मान लीजिए n का मान 21 है। यह प्रोग्राम एक संख्या x =15, 15 + अंकों का योग 15, यानी 15 + 1 + 5 =21 =n के रूप में लौटाएगा। इस समस्या को हल करने के लिए