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

C++ में ISBN की जांच


एक अनुक्रम दिया गया है और कार्य यह पहचानना है कि दिया गया अनुक्रम ISBN नंबर है या नहीं।

ISBN नंबर क्या है

ISBN का अर्थ अंतर्राष्ट्रीय मानक पुस्तक संख्या है जो दिसंबर 2006 तक 10 अंकों की संख्या थी और अब यह 1 जनवरी 2007 से 13 अंकों की संख्या में संशोधित हो गई है। नीचे 10 अंकों के ISBN का कार्यान्वयन दिया गया है।

ISBN अंक में एक पैटर्न होता है:

  • संख्या के पहले 9 अंक पुस्तक के शीर्षक, प्रकाशक और समूह को दर्शाते हैं। पहले 9 अंकों का मान 0-9 तक हो सकता है
  • अंतिम 1 अंक जांचता है कि ISBN सही है या नहीं। अंतिम अंक 10 का मान ले सकता है और इस संख्या को दर्शाने के लिए 'X' प्रतीक का उपयोग किया जाता है

कैसे जांचें कि दी गई 10 अंकों की संख्या ISBN नंबर है या नहीं?

  • अनुक्रम के पहले अंक से शुरू करें और इसे 10 से गुणा करें क्योंकि ISBN 10 अंकों की संख्या है
  • अगले अंक पर जाएं और गुणक का मान 1 से घटाते रहें
  • सभी गुणा किए गए परिणामों को जोड़ें
  • परिणाम को 11 से विभाजित करें
  • ISBN नंबर की जांच के लिए शर्त लागू करें
    • यदि परिणाम 11 से विभाज्य है जिसका अर्थ है कोई शेष नहीं बचता या 0 शेष बचता है तो संख्या ISBN नंबर है
    • यदि परिणाम 11 से विभाज्य नहीं है जिसका अर्थ है कुछ शेष बचता है या 0 शेष नहीं है तो संख्या ISBN नंबर नहीं है

उदाहरण

इनपुट-: 002442142X आउटपुट-: ISBN नहीं इनपुट-: 007462542X आउटपुट-: यह ISBN है

एल्गोरिदम

शुरुआत चरण 1-> ISBN की जांच के लिए फ़ंक्शन घोषित करें    bool isvalid(string &isbn_number)       int n = isbn_number.length() सेट करें          यदि (n != 10)             false वापस करें          समाप्त          int sum = 0 सेट करें          लूप लिए int i = 0 और i < 9 और i++             int value = isbn_number[i] - '0' सेट करें             यदि (0 > value || 9 < value)                false वापस करें             समाप्त             sum += (value * (10 - i)) सेट करें          समाप्त          char last_val = isbn_number[9] सेट करें          यदि (last_val != 'X' && (last_val < '0' || last_val > '9'))             false वापस करें          समाप्त          sum += ((last_val == 'X') ? 10 : (last_val - '0')) सेट करें          return (sum % 11 == 0) चरण 2-> main() में    string isbn_number = "002442142X" सेट करें    यदि (isvalid(isbn_number))       प्रिंट " मान्य है"    समाप्त    अन्यथा       प्रिंट " अमान्य है"    समाप्त रुकें

उदाहरण

#include <bits/stdc++.h> using namespace std; //जांचें कि यह वैध ISBN है या नहीं bool isvalid(string &isbn_number) {    int n = isbn_number.length();    if (n != 10)       return false;    int sum = 0;    for (int i = 0; i < 9; i++) {       int value = isbn_number[i] - '0';       if (0 > value || 9 < value)          return false;       sum += (value * (10 - i));    }    char last_val = isbn_number[9];    if (last_val != 'X' && (last_val < '0' || last_val > '9'))       return false;    sum += ((last_val == 'X') ? 10 : (last_val - '0'));    return (sum % 11 == 0); } int main() {    string isbn_number = "002442142X";    if (isvalid(isbn_number))       cout<<isbn_number<<" मान्य है";    else       cout<<isbn_number<<" अमान्य है";    return 0; }

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा

002442142X अमान्य है

  1. C++ में इन्वोल्यूटरी मैट्रिक्स जांचें C++ में इन्वोल्यूटरी मैट्रिक्स जांचें

    एक मैट्रिक्स M[r][c] दिया गया है, r पंक्तियों की संख्या दर्शाता है और c कॉलम की संख्या दर्शाता है जैसे कि r = c एक स्क्वायर मैट्रिक्स बनाता है। हमें जांचना है कि दिया गया स्क्वायर मैट्रिक्स इन्वोल्यूटरी मैट्रिक्स है या नहीं।इन्वोल्यूटरी मैट्रिक्सएक मैट्रिक्स को इन्वोल्यूटरी मैट्रिक्स कहा जाता है यदि

  1. C++ में पिरामिड के आयतन का प्रोग्राम C++ में पिरामिड के आयतन का प्रोग्राम

    पिरामिड के बेस के प्रकार के आधार पर भुजाएं दी गई हैं, कार्य पिरामिड का आयतन गणना करना है।पिरामिड एक 3-D आकृति है जिसकी बाहरी सतहें त्रिकोणीय हैं जो सामान्य बिंदु पर मिलती हैं जिससे पिरामिड का तीक्ष्ण किनारा बनता है। पिरामिड का आयतन उसके बेस के प्रकार पर निर्भर करता है।पिरामिड के बेस के विभिन्न प्रका

  1. C++ में क्विकसॉर्ट प्रोग्राम C++ में क्विकसॉर्ट प्रोग्राम

    क्विकसॉर्ट क्या है? क्विकसॉर्ट एक सॉर्टिंग तकनीक है जो अनसॉर्टेड सूची (सरणी) को सॉर्ट करने के लिए तुलनाओं का उपयोग करती है। क्विकसॉर्ट को पार्टीशन एक्सचेंज सॉर्ट के नाम से भी जाना जाता है। यह एक स्थिर सॉर्ट नहीं है, क्योंकि समान सॉर्ट आइटम्स का सापेक्ष क्रम संरक्षित नहीं रहता। क्विकसॉर्ट एक सरणी प