C++ program to check for ISBN

Given with the sequence and the task is to identify whether the given sequence is sa ISBN number or not.
ISBN stands for International Standard Book Number is a 10 digit number till December 2006 and now it is revised to 13 digit number from 1 January 2007. Given below is the implementation of 10 digits ISBN.
ISBN digit has a pattern in it as −
Starting 9 digits of a number represents Title, Publisher and Group of the book. The value of first 9 digit can range from 0 - 9
Last 1 digit checks whether the ISBN is correct or not. Last digit can take the value as 10 and symbol ‘X’ is used to represent this number
How to check whether a given 10 digit number is an ISBN number or not?
Start from the first digit of a sequence and multiply it with 10 as ISBN is a 10 digit number
Keep moving to the next digit by reducing the value of multiplier by 1
Add all the multiplied results
Divide the result with 11
Apply condition to check for ISBN numberIf result is divisible by 11 which means leaves no remainder or 0 as remainder than number is an ISBN numberIf result isn’t divisible by 11 which means leaves some remainder or not 0 as remainder than number isn’t an ISBN number
If result is divisible by 11 which means leaves no remainder or 0 as remainder than number is an ISBN number
If result isn’t divisible by 11 which means leaves some remainder or not 0 as remainder than number isn’t an ISBN number
Input-: 002442142X
Output-: Not ISBN
Input-: 007462542X
Output-: it’s ISBN
Start
Step 1-> declare function to check for ISBN
   bool isvalid(string &isbn_number)
      set int n = isbn_number.length()
         IF (n != 10)
            return false
         End
         Set int sum = 0
         Loop For int i = 0 and i < 9 and i++
            Set int value = isbn_number[i] - '0'
            If (0 > value || 9 < value)
               return false
            End
            Set sum += (value * (10 - i))
         End
         Set char last_val = isbn_number[9]
         IF (last_val != 'X' && (last_val < '0' || last_val > '9'))
            return false
         End
         Set sum += ((last_val == 'X') ? 10 : (last_val - '0'))
         return (sum % 11 == 0)
step 2-> In main()
   set string isbn_number = "002442142X"
   IF (isvalid(isbn_number))
      Print " is Valid"
   End
   Else
      Print " is invalid
   End
Stop
 Live Demo
#include <bits/stdc++.h>
using namespace std;
//check whether its a valid ISBN or not
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<<" is Valid";
   else
      cout<<isbn_number<<" is invalid";
   return 0;
}
IF WE RUN THE ABOVE CODE IT WILL GENERATE FOLLOWING OUTPUT
002442142X is invalid