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

C प्रोग्राम: जांचें कि संख्या दिए गए आधार से संबंधित है या नहीं

समस्या विवरण

एक स्ट्रिंग के रूप में दी गई संख्या और एक आधार (2 से 16) दिया गया है, जांचें कि क्या संख्या उस आधार में मान्य है।

संख्या प्रणाली आधार

आधारनाममान्य अंक
2बाइनरी0, 1
8ऑक्टल0-7
10दशमलव0-9
16हेक्साडेसिमल0-9, A-F

उदाहरण

इनपुट स्ट्रिंगआधारआउटपुटव्याख्या
"1010"2हाँकेवल 0,1 हैं
"1AA4"16हाँमान्य हेक्स अंक
"1610"2नहीं6,1 बाइनरी में अमान्य
"AF87"16हाँमान्य हेक्स

एल्गोरिदम

  1. यदि आधार > 16 → गलत लौटाएं
  2. यदि आधार ≤ 10: जांचें कि सभी वर्ण '0' से '0'+आधार-1 के बीच हैं
  3. यदि आधार > 10: जांचें कि वर्ण '0'-'9' या 'A' से 'A'+आधार-11 तक हैं

C प्रोग्राम

#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdbool.h>

bool isInGivenBase(char str[], int base) {
    if (base > 16 || base < 2) return false;
    
    for (int i = 0; i < strlen(str); i++) {
        char c = toupper(str[i]);
        int val;
        
        if (c >= '0' && c <= '9')
            val = c - '0';
        else if (c >= 'A' && c <= 'F')
            val = c - 'A' + 10;
        else
            return false;  // अमान्य वर्ण
        
        if (val >= base)
            return false;  // इस आधार के लिए अंक बहुत बड़ा
    }
    return true;
}

int main() {
    char str[100];
    int base;
    
    printf "संख्या स्ट्रिंग दर्ज करें: ";
    scanf("%s", str);
    printf "आधार दर्ज करें (2-16): ");
    scanf("%d", &base);
    
    if (isInGivenBase(str, base))
        printf("हाँ, '%s' आधार %d में मान्य है\n", str, base);
    else
        printf("नहीं, '%s' आधार %d में अमान्य है\n", str, base);
    
    return 0;
}

नमूना आउटपुट

संख्या स्ट्रिंग दर्ज करें: AF87
आधार दर्ज करें (2-16): 16
हाँ, 'AF87' आधार 16 में मान्य है

वैकल्पिक: मानक पुस्तकालय का उपयोग

#include <stdlib.h>

bool isValidBase(char *str, int base) {
    char *endptr;
    strtol(str, &endptr, base);
    return (*endptr == '\0' && endptr != str);
}

उपयोग के मामले

  • उपयोगकर्ता इनपुट सत्यापन
  • कॉम्पिलर/इंटरप्रेटर लेक्सिकल विश्लेषण
  • डेटा पार्सिंग और रूपांतरण
  • एम्बेडेड सिस्टम में कॉन्फ़िगरेशन सत्यापन
  1. - पायथन में दी गई संख्या के नार्सिसिस्टिक नंबर होने की जांच करने का प्रोग्राम

    मान लीजिए हमारे पास एक संख्या n है; हमें जांचना है कि क्या यह n के अंकों के योग के अंकों की संख्या की घात के बराबर है। उदाहरण के लिए, यदि इनपुट 9474 है, तो आउटपुट True होगा क्योंकि 9^4 + 4^4 + 7^4 + 4^4 = 6561 + 256 + 2401 + 256 = 9474। इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे: s := n के अ

  1. - पायथन में जांचें कि कोई संख्या बदसूरत संख्या है या नहीं

    मान लीजिए हमारे पास एक संख्या n है, हमें जांचना है कि क्या इसके अभाज्य गुणनखंड केवल 2, 3 या 5 शामिल हैं या नहीं। उदाहरण के लिए, यदि इनपुट है n = 18, तो आउटपुट होगा True, क्योंकि 18 के अभाज्य गुणनखंड 2 और 3 हैं। हल करने के चरण यदि n < 0, तो False लौटाएं। factor := [2, 3, 5] तत्वों वाली सूची। प्रत्य

  1. - Python प्रोग्राम: जांचें कि कोई संख्या अभाज्य है या नहीं

    इसमें, हम एक प्रोग्राम लिखेंगे जो जांच करेगा कि दी गई संख्या जो 1 से अधिक है, अभाज्य है या नहीं। एक अभाज्य संख्या 1 से बड़ा एक धनात्मक पूर्णांक है जिसके केवल दो गुणनखंड होते हैं 1 और वह संख्या स्वयं, उदाहरण के लिए संख्या: 2, 3, 5, 7... आदि अभाज्य संख्याएं हैं क्योंकि उनके केवल दो गुणनखंड होते हैं