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

C++ में डिजिटल रूट X वाली Nवीं धनात्मक संख्या ढूंढना


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

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

आइए एक उदाहरण से समस्या को समझते हैं,

इनपुट

N = 5, X = 4

आउटपुट

40

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

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

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

उदाहरण

#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

कुशल दृष्टिकोण

समस्या को हल करने का एक कुशल दृष्टिकोण डिजिटल रूट X के बराबर Nवीं संख्या को सीधे सूत्र का उपयोग करके ढूंढना है, जो है,

Nवीं संख्या = (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. - C++ में सरणी में निकटतम संख्या ज्ञात करें

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

  1. - C++ प्रोग्राम: संख्या का घनमूल ज्ञात करना

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

  1. - C++ में परिमेय संख्याओं का LCM खोजें

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