Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để kiểm tra ISBN

Được đưa ra với trình tự và nhiệm vụ là xác định xem trình tự đã cho có phải là số ISBN hay không.

Số ISBN là gì

ISBN là viết tắt của International Standard Book Number là một số có 10 chữ số cho đến tháng 12 năm 2006 và bây giờ nó được sửa đổi thành 13 chữ số từ ngày 1 tháng 1 năm 2007. Dưới đây là việc triển khai ISBN 10 chữ số.

Chữ số ISBN có dạng là -

  • 9 chữ số bắt đầu của một số thể hiện Tên sách, Nhà xuất bản và Nhóm của sách. Giá trị của 9 chữ số đầu tiên có thể nằm trong khoảng từ 0 - 9
  • 1 chữ số cuối cùng kiểm tra xem ISBN có chính xác hay không. Chữ số cuối cùng có thể nhận giá trị là 10 và ký hiệu 'X' được dùng để đại diện cho số này

Cách kiểm tra xem một số 10 chữ số nhất định có phải là số ISBN hay không?

  • Bắt đầu từ chữ số đầu tiên của một dãy và nhân nó với 10 vì ISBN là một số có 10 chữ số
  • Tiếp tục chuyển sang chữ số tiếp theo bằng cách giảm giá trị của cấp số nhân đi 1
  • Thêm tất cả các kết quả được nhân
  • Chia kết quả với 11
  • Áp dụng điều kiện để kiểm tra số ISBN
    • Nếu kết quả chia hết cho 11 có nghĩa là không để lại phần dư hoặc 0 vì phần dư hơn số là số ISBN
    • Nếu kết quả không chia hết cho 11, nghĩa là để lại một số phần còn lại hoặc không phải là 0 vì phần còn lại không phải là số ISBN

Ví dụ

 Input-:002442142XOutput-:Không phải ISBNInput-:007462542XOutput-:it’s ISBN 

Thuật toán

 StartStep 1-> khai báo hàm để kiểm tra 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 và i ++ Đặt int value =isbn_number [i] - '0' If (0> value || 9  '9')) trả về false Kết thúc Đặt sum + =((last_val =='X')? 10:(last_val - ' 0 ')) return (sum% 11 ==0) bước 2-> Trong chuỗi chính () set isbn_number ="002442142X" IF (isvalid (isbn_number)) Print "is Valid" End Else Print "là EndStop 

Ví dụ

 #include  using namespace std; // kiểm tra xem ISBN hợp lệ hay notbool isvalid (string &isbn_number) {int n =isbn_number.length (); if (n! =10) trả về false; int sum =0; for (int i =0; i <9; i ++) {int value =isbn_number [i] - '0'; if (0> value || 9  '9')) trả về false; sum + =((last_val =='X')? 10:(last_val - '0')); return (sum% 11 ==0);} int main () {string isbn_number ="002442142X"; if (isvalid (isbn_number)) cout < 

Đầu ra

NẾU CHÚNG TÔI CHẠY MÃ TRÊN, NÓ SẼ TẠO ĐẦU RA SAU ĐÂY

 002442142X không hợp lệ