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

C++ में संख्या के अंकों का योग तब तक करना जब तक एकल अंक न आ जाए


परिचय

इस ट्यूटोरियल में हम एक ऐसा प्रोग्राम लिखेंगे जो दी गई संख्या के अंकों का योग तब तक करता है जब तक यह एकल अंक (single digit) न बन जाए। आइए एक उदाहरण देखते हैं।

इनपुट - 4543

आउटपुट - 7

विधि 1: लूप का उपयोग करके

चरण

  1. एक संख्या इनिशियलाइज़ करें।
  2. योग को 0 से इनिशियलाइज़ करें।
  3. जब तक योग 9 से कम न हो जाए तब तक पुनरावृत्ति करें:
    • मॉड्यूलो ऑपरेटर का उपयोग करके संख्या के प्रत्येक अंक को योग में जोड़ें।
  4. योग प्रिंट करें।

उदाहरण कोड

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

void findTheSingleDigit(int n) {
    int sum = 0;
    while(n > 0 || sum > 9) {
        if(n == 0) {
            n = sum;
            sum = 0;
        }
        sum += n % 10;
        n /= 10;
    }
    cout << sum << endl;
}

int main() {
    int n = 4543;
    findTheSingleDigit(n);
    return 0;
}

आउटपुट

7

विधि 2: गणितीय सूत्र (डिजिटल रूट)

हम इस समस्या को हल करने के लिए एक सरल गणितीय गुण का उपयोग कर सकते हैं:

  • यदि दी गई संख्या 9 से विभाज्य है, तो उत्तर 9 है।
  • अन्यथा उत्तर n % 9 है।

इसे डिजिटल रूट (Digital Root) कहा जाता है।

उदाहरण कोड

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

void findTheSingleDigit(int n) {
    if (n == 0) {
        cout << 0;
    } else if (n % 9 == 0) {
        cout << 9 << endl;
    } else {
        cout << n % 9 << endl;
    }
}

int main() {
    int n = 4543;
    findTheSingleDigit(n);
    return 0;
}

आउटपुट

7

निष्कर्ष

दूसरी विधि O(1) समय जटिलता के साथ बहुत अधिक कुशल है। यह मॉड्यूलर अंकगणित के गुणों पर आधारित है। यदि आपके कोई प्रश्न हैं, तो कमेंट सेक्शन में पूछें।


  1. - C प्रोग्राम: दी गई संख्या के अंकों का योग एक ही स्टेटमेंट में

    इस खंड में हम देखेंगे कि कई स्टेटमेंट लिखे बिना अंकों का योग कैसे ज्ञात करें। दूसरे शब्दों में, हम एक ही स्टेटमेंट में अंकों का योग ज्ञात करेंगे। जैसा कि हम जानते हैं, अंकों का योग ज्ञात करने के लिए हम संख्या को 10 से विभाजित करने के बाद शेष लेकर अंतिम अंक काटते हैं, और फिर संख्या को 10 से बार-बार

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

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

  1. - पायथन में अंकों का योग तब तक खोजने का प्रोग्राम जब तक यह एक अंक की संख्या न बन जाए

    मान लीजिए हमारे पास एक धनात्मक संख्या n है, हम इसके सभी अंकों को जोड़कर एक नई संख्या प्राप्त करेंगे। अब इस ऑपरेशन को तब तक दोहराएं जब तक यह 10 से कम न हो जाए। उदाहरण के लिए, यदि इनपुट 9625 है, तो आउटपुट 4 होगा। इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे (रिकर्सिव/इटरेटिव): solve(n) मेथड परिभा