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

C++ में nवीं संख्या जिसके अंकों का योग दस है

वे संख्याएं जिनके अंकों का योग 10 के बराबर है:

19, 28, 37, 46, 55, 64, 73, 82, 91, आदि।

यदि आप श्रृंखला का निरीक्षण करते हैं, तो प्रत्येक संख्या 9 से बढ़ाई जाती है। उपरोक्त क्रम में ऐसी संख्याएं हैं जिनके अंकों का योग 9 से बढ़ाने पर 10 के बराबर नहीं होता है। लेकिन, आपको वे सभी संख्याएं मिल जाएंगी जिनके अंकों का योग 10 के बराबर है।

तो, हम एक लूप रख सकते हैं जो 9 से बढ़ता है और अंकों के योग की जांच करता है और nवीं संख्या ढूंढता है। आइए कुछ उदाहरण देखें:

इनपुट्स

3
7

आउटपुट्स

37
73

एल्गोरिथ्म

  • संख्या n इनिशियलाइज़ करें
  • एक काउंटर को 0 पर इनिशियलाइज़ करें।
  • एक लूप लिखें जो 19 से पुनरावृति करता है
    • यदि वर्तमान संख्या का अंकों का योग 10 है, तो काउंटर को 1 से बढ़ाएं।
    • यदि काउंटर n के बराबर है, तो वर्तमान संख्या लौटाएं।
    • पुनरावृत्ति वेरिएबल को 9 से बढ़ाएं।

कार्यान्वयन

उपरोक्त एल्गोरिथ्म का C++ में कार्यान्वयन निम्नलिखित है:

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

int findNthNumber(int n) {
   int count = 0, i = 19;
   while (true) {
      int sum = 0;
      for (int number = i; number > 0; number = number / 10) {
         sum = sum + number % 10;
      }
      if (sum == 10) {
         count++;
      }
      if (count == n) {
         return i;
      }
      i += 9;
   }
   return -1;
}

int main() {
   int n = 7;
   cout << findNthNumber(7) << endl;
   return 0;
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।

73

समय जटिलता विश्लेषण

  • समय जटिलता: O(n * log(max_number)) - जहां max_number लगभग 19 + 9*n है
  • स्पेस जटिलता: O(1)
  • यह दृष्टिकोण काम करता है क्योंकि वैध संख्याओं के बीच का अंतर 9 का गुणक होता है

अनुकूलन नोट

बड़े n के लिए, डिजिट DP या गणितीय सूत्र का उपयोग करके O(log n) में गणना की जा सकती है।

  1. C++ में उन नोड्स को गिनना जिनका योग X के साथ फाइबोनैचि संख्या है C++ में उन नोड्स को गिनना जिनका योग X के साथ फाइबोनैचि संख्या है

    नोड्स के वजन वाली एक बाइनरी ट्री दी गई है। लक्ष्य उन नोड्स की संख्या ढूंढना है जिनके वजन ऐसे हैं कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं: 0, 1, 1, 2, 3, 5, 8, 13... nth संख्या (n-1)th और (n-2)th का योग है। यदि वजन 13 है तो यह एक फाइबोनैचि संख्या है इसलिए नोड गिना जाएगा।

  1. - C++ में जांचें कि संख्या जादुई है (अंकों का पुनरावर्ती योग 1 है)

    यहां हम एक प्रोग्राम देखेंगे, जो जांच सकता है कि कोई संख्या जादुई संख्या (magic number) है या नहीं। एक संख्या को जादुई संख्या कहा जाता है, जब अंकों का पुनरावर्ती योग 1 होता है। मान लीजिए संख्या 50311 है = 5 + 0 + 3 + 1 + 1 = 10 = 1 + 0 = 1, यह जादुई संख्या है।यह जांचने के लिए कि संख्या जादुई है या न

  1. - C++ प्रोग्राम दी गई संख्या के अंकों का योग करने के लिए

    C++ भाषा में अंकों का योग गणना करने का एक उदाहरण निम्नलिखिक है, उदाहरण #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "संख्या दर्ज करें: ";    cin >> x;    while (x != 0) {       s =