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

लगातार संख्याओं का योग C++ में

मान लीजिए हमारे पास एक धनात्मक पूर्णांक N है, हमें ढूंढना है कि इसे लगातार धनात्मक पूर्णांकों के योग के रूप में कितने अलग-अलग तरीकों से लिखा जा सकता है?

उदाहरण के लिए, यदि इनपुट 10 है, तो आउटपुट 3 होगा (नोट: मूल उदाहरण में त्रुटि है, सही उत्तर 3 है: 10, 1+2+3+4, 5+5 नहीं क्योंकि लगातार होना चाहिए)।

हल करने का दृष्टिकोण

गणितीय अंतर्दृष्टि: N = k*a + k*(k-1)/2 जहां k पदों की संख्या है और a पहला पद है।

  • ret = 1 से शुरू करें (N स्वयं)

  • k = 2 से शुरू करते हुए, जब तक k*(k+1)/2 <= N

  • जांचें कि क्या (N - k*(k+1)/2) k से विभाज्य है

  • यदि हां, तो एक वैध अनुक्रम मौजूद है

उदाहरण

#include <bits/stdc++.h> 
using namespace std; 

class Solution { 
public: 
    int consecutiveNumbersSum(int N) { 
        int ret = 1; 
        for(int i = 2; ; i++){ 
            int sum = (i * (i + 1)) / 2; 
            if(sum > N) break; 
            int rem = N - sum; 
            ret += (rem % i == 0); 
        } 
        return ret; 
    } 
}; 

int main(){ 
    Solution ob; 
    cout << (ob.consecutiveNumbersSum(10)); 
    return 0;
}

इनपुट

10

आउटपुट

2
  1. - C++ में एलिक्वॉट योग (Aliquot Sum)

    यहां हम देखेंगे कि एलिक्वॉट योग क्या है? n का एलिक्वॉट योग n को छोड़कर n के सभी पूर्ण गुणनखंडों का योग है। उदाहरण के लिए, यदि संख्या 20 है, तो पूर्ण गुणनखंड (1, 2, 4, 5, 10) हैं। तो एलिक्वॉट योग 22 है। एक दिलचस्प तथ्य यह है कि, यदि किसी संख्या का एलिक्वॉट योग संख्या स्वयं है, तो वह संख्या एक पूर्ण

  1. - C++ प्रोग्राम: प्राकृतिक संख्याओं का योग गणना करें

    परिचयप्राकृतिक संख्याएं 1 से शुरू होने वाले धनात्मक पूर्णांक हैं। प्राकृतिक संख्याओं का क्रम है - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10... पहली n प्राकृतिक संख्याओं का योग for लूप या फॉर्मूला का उपयोग करके गणना किया जा सकता है। for लूप का उपयोग करके प्राकृतिक संख्याओं का योगfor लूप का उपयोग करके n प्राकृतिक

  1. - C++ प्रोग्राम: दो संख्याएं जोड़ें

    परिचयजोड़ एक बुनियादी अंकगणितीय संक्रिया है। दो संख्याओं को जोड़ने वाला प्रोग्राम दो संख्याओं का जोड़ करता है और उनका योग स्क्रीन पर प्रिंट करता है। उदाहरण#include <iostream> using namespace std; int main() { int num1 = 15, num2 = 10, sum; sum = num1 + num2; cout << Sum of