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

ज्ञात कीजिए कि क्या दी गई संख्या C++ में प्रथम n प्राकृत संख्याओं का योग है

इस समस्या में, हमें एक संख्या संख्या दी जाती है। हमारा कार्य पता लगाना है कि दी गई संख्या प्रथम n प्राकृत संख्याओं का योग है या नहीं।

समस्या का विवरण: यहां, हमें यह जांचना होगा कि दी गई संख्या पहली n प्राकृतिक संख्याओं का योग है या नहीं।

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

इनपुट: संख्या =55

आउटपुट: हाँ, 10

स्पष्टीकरण:

55 पहली 10 प्राकृतिक संख्याओं का योग है, 1+2+3+4+5+6+7+8+9+10.

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

समस्या को हल करने का एक सरल तरीका है n प्राकृत संख्याओं का योग तब तक ज्ञात करना जब तक कि वह संख्या के बराबर या उससे अधिक न हो जाए।

यदि योग संख्या के बराबर है, तो n लौटाएं।

यदि n के किसी भी मान पर योग n से अधिक हो जाता है, तो -1 लौटाएं।

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

उदाहरण

#include <iostream>
using namespace std;

int isNatSum(int num){

   int sum = 0;
   for (int n = 1; sum < num; n++) {
      sum += n;
      if (sum == num)
         return n;
   }
   return -1;
}

int main(){

   int num = 55;
   int n = isNatSum(num);
   if(n == -1)
    cout<<"The value is not sum of natural numbers";
   else
      cout<<"The value is a sum of first "<<n<<" natural numbers";
   return 0;
}

आउटपुट -

The value is a sum of first 10 natural numbers

यह विधि अच्छी है लेकिन हम n प्राकृत संख्याओं के योग के लिए गणितीय सूत्र का उपयोग करके समस्या को अधिक कुशलता से हल कर सकते हैं।

प्रथम पारस्परिक संख्याओं का योग सूत्र द्वारा दिया जाता है,

योग =n*(n+1)/2

हमें योग दिया गया है और हमें n का मान ज्ञात करना है,

इसलिए हमें n खोजने के लिए एक द्विघात समीकरण बनाना होगा।

=> 2*योग =n 2 + एन

=> n 2 + n - 2*योग =0 , द्विघात समीकरण

इस द्विघात समीकरण का हल है,

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

उदाहरण

#include <iostream>
#include <math.h>
using namespace std;

int isNatSum(int num){
   
   int n = ( -1+ sqrt (1 + (8*num) ))/2;
   if(ceil(n)==floor(n)){
      return n;
   }
   return -1;
}

int main(){
   
   int num = 55;
   int n = isNatSum(num);
   if(n == -1)
      cout<<"The value is not sum of natural numbers";
   else
      cout<<"The value is a sum of first "<<n<<" natural numbers";
   return 0;
}

आउटपुट

The value is a sum of first 10 natural numbers

  1. पहले n प्राकृतिक संख्याओं के घन योग के लिए C++ प्रोग्राम?

    धनात्मक पूर्णांक 1, 2, 3, 4... प्राकृत संख्याएँ कहलाती हैं। यह प्रोग्राम उपयोगकर्ता से एक धनात्मक पूर्णांक लेता है (मान लें कि उपयोगकर्ता द्वारा दर्ज किया गया n) तो, यह प्रोग्राम 13 का मान प्रदर्शित करता है +23 +33 +....+n3 । Input: n = 3 Output: 36 स्पष्टीकरण 13+23+33 = 1 +8+27 = 36 यह प्रोग्राम

  1. सी ++ प्रोग्राम पहले एन प्राकृतिक संख्याओं के वर्गों के योग के लिए?

    इस समस्या में हम देखेंगे कि हम पहली n प्राकृत संख्याओं के वर्गों का योग कैसे प्राप्त कर सकते हैं। यहां हम लूप के लिए एक का उपयोग कर रहे हैं, जो 1 से n तक चलता है। प्रत्येक चरण में हम पद के वर्ग की गणना कर रहे हैं और फिर इसे योग में जोड़ रहे हैं। इस प्रोग्राम को पूरा होने में O(n) समय लगता है। लेकिन

  1. सी ++ प्रोग्राम रिकर्सन का उपयोग करके प्राकृतिक संख्याओं का योग खोजने के लिए

    प्राकृत संख्याएं 1 से शुरू होने वाली धनात्मक पूर्णांक होती हैं। प्राकृत संख्याओं का क्रम है - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10…… रिकर्सन का उपयोग करके पहले n प्राकृतिक संख्याओं का योग ज्ञात करने का कार्यक्रम इस प्रकार है। उदाहरण #include <iostream> using namespace std; int sum(int