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

C++ में 1 से N तक कुल अंकों की गिनती


हमें इनपुट के रूप में एक संख्या N दी गई है। लक्ष्य संख्याओं 1 से N के बीच कुल अंकों की संख्या गिनना है। 1 से 9 तक की संख्याओं के लिए प्रत्येक को 1 अंक की आवश्यकता होती है, 11 से 99 के लिए प्रत्येक को 2 अंकों की आवश्यकता होती है, 100 से 999 के लिए प्रत्येक को 3 अंकों की आवश्यकता होती है और इसी तरह।

उदाहरण सहित समझ

इनपुट - N=11

आउटपुट - 1 से N तक कुल अंकों की संख्या: 13

व्याख्या - संख्याएँ 1 से 9 में प्रत्येक का 1 अंक: 9 अंक। 10, 11 में प्रत्येक के 2 अंक। 4 अंक। कुल अंक = 9+4=13।

इनपुट - N=999

आउटपुट - 1 से N तक कुल अंकों की संख्या: 2889

व्याख्या - संख्याएँ 1 से 9 में प्रत्येक का 1 अंक: 9 अंक। 10 से 99 में प्रत्येक के 2 अंक: 180 अंक। 100 से 999 में प्रत्येक के 3 अंक: 2700 अंक। कुल अंक = 2700 + 180 + 9 = 2889 अंक।

प्रोग्राम में उपयोग किया गया दृष्टिकोण

हम दो दृष्टिकोणों का उपयोग करेंगे। पहला सामान्य दृष्टिकोण एक रिकर्सिव फंक्शन का उपयोग करके किसी संख्या num में अंकों की गणना करता है। पास की गई num को स्ट्रिंग में बदलें। स्ट्रिंग की लंबाई num में अंक है। वर्तमान num-1 को रिकर्सिवली पास करके प्रत्येक संख्या के लिए ऐसा करें।

  • एक संख्या को धनात्मक पूर्णांक के रूप में लें।
  • फंक्शन total_digits(int num) num लेता है और 1 से num के बीच की संख्याओं में अंक लौटाता है।
  • num में अंकों की गणना करने के लिए, num को स्ट्रिंग में बदलें (to_string(num))।
  • स्ट्रिंग की लंबाई num में अंक है।
  • यदि num 1 है तो 1 लौटाएँ। अन्यथा शेष संख्याओं के लिए length + total_digits(num-1) लौटाएँ जो num से कम हैं।
  • अंत में हमें कुल अंक परिणाम के रूप में प्राप्त होंगे।

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

इस दृष्टिकोण में, हम इस तर्क का उपयोग करेंगे कि N तक की प्रत्येक संख्या के लिए। हम 10, 100, 1000 तक N तक ट्रैवर्स करेंगे। प्रत्येक 10^i के लिए, अंकों की संख्या (num - i + 1) है।

  • एक संख्या को धनात्मक पूर्णांक के रूप में लें।
  • फंक्शन total_digits(int num) num लेता है और 1 से num के बीच की संख्याओं में अंक लौटाता है।
  • कुल काउंट को प्रारंभ में 0 लें।
  • i=1 से i<=num तक ट्रैवर्स करें, प्रत्येक पुनरावृत्ति में i को 10 से बढ़ाएँ और num - i + 1 को काउंट में जोड़ें।
  • फॉर लूप के अंत में परिणाम के रूप में काउंट लौटाएँ।

उदाहरण (सामान्य दृष्टिकोण)

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

int total_digits(int num) {
    string str = to_string(num);
    int length = str.length();
    if (num == 1) {
        return 1;
    }
    return length + total_digits(num - 1);
}

int main() {
    int num = 20;
    cout << "Count of total number of digits from 1 to n are: " << total_digits(num);
    return 0;
}

आउटपुट

Count of total number of digits from 1 to n are: 31

उदाहरण (कुशल दृष्टिकोण)

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

int total_digits(int num) {
    int count = 0;
    for (int i = 1; i <= num; i *= 10) {
        count = count + (num - i + 1);
    }
    return count;
}

int main() {
    int num = 20;
    cout << "Count of total number of digits from 1 to n are: " << total_digits(num);
    return 0;
}

आउटपुट

Count of total number of digits from 1 to n are: 31
  1. - C++ में 2 की घात n में अंकों की संख्या

    किसी संख्या की घात की गणना पुनरावृत्ति गुणन या भाषा द्वारा प्रदान किए गए फ़ंक्शन का उपयोग करके की जा सकती है। यह एक सीधी बात है। यहां, हमें 2 की घात n ज्ञात करनी है। और परिणाम में अंकों की संख्या। आइए कुछ उदाहरण देखते हैं। इनपुट 5 आउटपुट 2 इनपुट 10 आउटपुट 4 एल्गोरिदम संख्या n आरंभ करें। 2n का

  1. - C++ में {0, 1, 2, 3, 4, 5} अंकों वाली nवीं संख्या

    {0, 1, 2, 3, 4, 5} अंकों से बनी संख्याएं हैं 0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25, आदि... हम पहले 6 अंकों का उपयोग करके उपरोक्त अनुक्रम बना सकते हैं। आइए संख्याओं के निर्माण का एक उदाहरण देखते हैं। 1 * 10 + 0 = 10 1 * 10 + 1 = 11 1 * 10 + 2 = 12 1 * 10 + 3 = 13 1 * 10 +

  1. OpenCV में C++ का उपयोग करके कुल फ्रेम की संख्या गिनें OpenCV में C++ का उपयोग करके कुल फ्रेम की संख्या गिनें

    हम सीखेंगे कि OpenCV में कुल फ्रेम की संख्या कैसे गिनें। OpenCV का उपयोग करके, वीडियो के कुल फ्रेम की संख्या को गिनना और दिखाना प्राथमिक है। हालांकि, आपको एक बात ध्यान में रखनी होगी कि हम वास्तविक समय वीडियो के कुल फ्रेम की संख्या नहीं गिन सकते। क्योंकि वास्तविक समय वीडियो में फ्रेम की एक विशिष्ट सं