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

C++ में पूर्णांक में अंकों की संख्या निर्धारित करना

विधि 1: पारंपरिक लूप विधि (10 से विभाजित करके)

इस विधि में, हम संख्या को 10 से विभाजित करके कम करते हैं और तब तक गिनते हैं जब तक संख्या 0 नहीं हो जाती।

उदाहरण

#include <iostream>
using namespace std;

int count_digit(int number) {
    int count = 0;
    // ऋणात्मक संख्याओं को संभालें
    if (number < 0) number = -number;
    // 0 का विशेष मामला
    if (number == 0) return 1;
    
    while (number != 0) {
        number = number / 10;
        count++;
    }
    return count;
}

int main() {
    cout << "Number of digits in 1245: " << count_digit(1245) << endl;
    cout << "Number of digits in -123: " << count_digit(-123) << endl;
    cout << "Number of digits in 0: " << count_digit(0) << endl;
    return 0;
}

आउटपुट

Number of digits in 1245: 4
Number of digits in -123: 3
Number of digits in 0: 1

विधि 2: लघुगणक विधि (log10 का उपयोग करके)

इस विधि में हम बेस 10 लघुगणक फ़ंक्शन का उपयोग करके परिणाम प्राप्त करते हैं। सूत्र होगा floor(log10(number)) + 1।

उदाहरण के लिए, यदि संख्या 1245 है, तो यह 1000 से ऊपर और 10000 से नीचे है, इसलिए लघुगणक मान 3 < log10(1245) < 4 की रेंज में होगा। पूर्णांक भाग लेने पर यह 3 होगा। फिर इसमें 1 जोड़कर अंकों की संख्या प्राप्त करें।

उदाहरण

#include <iostream>
#include <cmath>
using namespace std;

int count_digit(int number) {
    if (number == 0) return 1;
    if (number < 0) number = -number;
    return static_cast(log10(number) + 1);
}

int main() {
    cout << "Number of digits in 1245: " << count_digit(1245) << endl;
    cout << "Number of digits in 99999: " << count_digit(99999) << endl;
    return 0;
}

आउटपुट

Number of digits in 1245: 4
Number of digits in 99999: 5

तुलना

पहलूलूप विधिलघुगणक विधि
समय जटिलताO(d) जहाँ d अंकों की संख्या हैO(1)
किनारे के मामले0 और ऋणात्मक को आसानी से संभालता है0 और ऋणात्मक के लिए विशेष हैंडलिंग आवश्यक
सटीकताहमेशा सटीकबहुत बड़ी संख्याओं के लिए फ्लोटिंग-पॉइंट सटीकता समस्याएं हो सकती हैं
पठनीयतासरल और स्पष्टगणितीय ज्ञान आवश्यक

सिफारिश

सामान्य उपयोग के लिए, लूप विधि पसंद की जाती है क्योंकि इसकी सादगी, विश्वसनीयता और किनारे के मामलों को संभालने में आसानी होती है। लघुगणक विधि प्रदर्शन-महत्वपूर्ण कोड के लिए उपयोगी है जहां संख्याओं की रेंज ज्ञात और सीमित है।

  1. C++ में डोमिनोज़ और ट्रोमिनोज़ से क्षेत्र भरने के कॉन्फिगरेशन की संख्या गिनने का प्रोग्राम C++ में डोमिनोज़ और ट्रोमिनोज़ से क्षेत्र भरने के कॉन्फिगरेशन की संख्या गिनने का प्रोग्राम

    परिचय मान लीजिए हमारे पास दो आकार हैं: डोमिनो (Domino) और ट्रोमिनो (Tromino)। डोमिनो 2×1 आकार के होते हैं और ट्रोमिनो L जैसे आकार के होते हैं। उन्हें नीचे दिखाए अनुसार घुमाया जा सकता है। यदि हमारे पास एक संख्या n है, तो हमें इन दो प्रकार के टुकड़ों से 2×n बोर्ड भरने के कॉन्फिगरेशन की संख्या ढूंढ

  1. - C++ में CHAR_BIT

    CHAR_BIT क्या है? CHAR_BIT एक बाइट में बिट्स की संख्या दर्शाता है। <climits> या <limits.h> हेडर में परिभाषित। आमतौर पर 8 बिट्स प्रति बाइट होता है। C++ प्रोग्राम उदाहरण #include <bits/stdc++.h> using namespace std; int main() { int x = 28; int total_bits = CHAR_BIT * size

  1. - C++ में कितने कीवर्ड्स हैं?

    C++ में कुल 95 रिज़र्व्ड शब्द (reserved words) हैं। C++ के रिज़र्व्ड शब्दों को सुविधाजनक रूप से कई समूहों में रखा जा सकता है। पहले समूह में, हम उन शब्दों को रखते हैं जो C प्रोग्रामिंग भाषा में भी मौजूद थे और C++ में ले लिए गए हैं। इनमें से 32 हैं। 30 और रिज़र्व्ड शब्द हैं जो C में नहीं थे, इसलिए वे