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

Nth धनात्मक संख्या ज्ञात कीजिए जिसका डिजिटल रूट C++ में X है

इस समस्या में, हमें दो पूर्णांक मान N और X दिए गए हैं। हमारा कार्य Nth धनात्मक संख्या ज्ञात करने के लिए एक प्रोग्राम बनाना है जिसका डिजिटल रूट X है।

डिजिटल रूट (X) एक एकल अंक धनात्मक संख्या है जो N के अंकों को पुनरावर्ती रूप से अंकों को जोड़कर पाया जाता है, जब तक कि योग एकल अंक न हो जाए।

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

इनपुट

N = 5, X = 4

आउटपुट

40

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

समस्या को हल करने का एक आसान तरीका है डिजिटल रूट के साथ संख्याओं की गणना करना एक्स है। इसके लिए, हम 1 से शुरू करेंगे और फिर जांच करेंगे कि वर्तमान संख्या का डिजिटल रूट एक्स के बराबर है या नहीं और संख्याओं की गणना करें और ऐसी संख्या वापस करें।

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

उदाहरण

#include <iostream>
using namespace std;
int calcDigitalRoot(int num) {
   int digitSum = 1000, number = num;
   while (digitSum >= 10) {
      digitSum = 0;
      while (number > 0) {
         digitSum += number % 10;
         number /= 10;
      }
      number = digitSum;
   }
   return digitSum;
}
int calcNthDigitalRoot(int X, int N) {
   int countDigitalRootVals = 0;
   for (int i = 1; countDigitalRootVals < N; ++i) {
      int digitalRoot = calcDigitalRoot(i);
      if (digitalRoot == X) {
         ++countDigitalRootVals;
      }
      if (countDigitalRootVals == N)
         return i;
   }
   return -1;
}
int main(){
   int X = 4, N = 5;
   cout<<N<<"th positive number whose digital root is "<<X<<" is "<<calcNthDigitalRoot(X, N);
   return 0;
}

आउटपुट

5th positive number whose digital root is 4 is 40

कुशल तरीका

समस्या को हल करने का एक प्रभावी तरीका N th . का पता लगाना है प्रत्यक्ष सूत्र का उपयोग करके एक्स के बराबर डिजिटल रूट वाली संख्या, जो है,

Nth number = (N + 1)*9 + X

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

उदाहरण

#include <iostream>
using namespace std;
int calcNthDigitalRoot(int X, int N) {
   int nthNumber = (((N - 1) * 9) + X);
   return nthNumber;
}
int main() {
   int X = 4, N = 12;
   cout<<N<<"th positive number whose digital root is "<<X<<" is "<<calcNthDigitalRoot(X, N);
   return 0;
}

आउटपुट

12th positive number whose digital root is 4 is 103

  1. सी ++ में सरणी में निकटतम संख्या पाएं

    मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। और तत्वों को क्रमबद्ध किया जाता है। हमें दिए गए पूर्णांक का निकटतम मान ज्ञात करना है। सरणी में डुप्लिकेट मान और ऋणात्मक संख्याएँ हो सकती हैं। तो अगर सरणी [2, 5, 6, 7, 8, 8, 9] की तरह है और लक्ष्य संख्या 4 है, तो निकटतम तत्व 5 है। हम दिए गए सरणी क

  1. C++ में किसी संख्या का घनमूल ज्ञात कीजिए

    यहां हम देखेंगे कि किसी संख्या का घनमूल कैसे निकाला जाता है। मान लीजिए कि एक संख्या 27 है, तो इस संख्या का घनमूल 3 है। इस समस्या को हल करने के लिए, हम कुछ पुस्तकालय कार्यों का उपयोग किए बिना अपने स्वयं के तर्क को परिभाषित करेंगे। हम द्विआधारी खोज दृष्टिकोण का उपयोग करेंगे। इस समस्या को हल करने के लि

  1. C++ में परिमेय संख्या का LCM ज्ञात कीजिए

    यहां हम देखेंगे कि परिमेय संख्याओं का एलसीएम कैसे ज्ञात करें। हमारे पास परिमेय संख्याओं की एक सूची है। मान लीजिए सूची {2/7, 3/14, 5/3} जैसी है, तो एलसीएम 30/1 होगा। इस समस्या को हल करने के लिए, हमें सभी अंशों के एलसीएम की गणना करनी होगी, फिर सभी हरों की जीसीडी, फिर परिमेय संख्याओं का एलसीएम, जैसा ह