Chương trình in số ISBN trong Java
Trong bài tập này Freetuts sẽ thực hiện một chương trinh Java kiểm tra các số ISBN - Số định danh sách tiêu chuẩn Quốc Tế. Đây là một bài tập giúp bạn làm quen với số ISBN.
Số ISBN trong Java
Số ISBN là một số đặc biệt trong Java. ISBN là viết tắt của International Standard Book Number được hiểu là số định danh sách tiêu chuẩn Quốc Tế. ISBN là một số duy nhất(unique) gồm 10 chữ số. Với sự trợ giúp của ISBN, chúng ta có thể tìm thấy bất kỳ cuốn sách nào một cách dễ dàng.
Số ISBN là số hợp lệ khi:
Tổng của (1*Digit1 + 2*Digit2 + 3*Digit3 + 4*Digit4 + 5*Digit5 + 6*Digit6 + 7*Digit7 + 8*Digit8 + 9*Digit9 + 10*Digit10) chia hết cho 11. Các chữ số được lấy từ phải sang trái. Vì vậy, nếu số có mười chữ số là 2602200101, Digit1 là 1 và Digit10 là 2.
Bài viết này được đăng tại [free tuts .net]
Bây giờ hãy thử lấy 1 số để kiểm tra xem có hợp lệ hay không nhé.
ISBN Number: 8175257660
SUM = 1*0 + 2*6 + 3*6 + 4*7 + 5*5 + 6*2 + 7*5 + 8*7 + 9*1 + 10*8 = 275
Bây giờ, mình lấy tổng chia cho 11 và kiểm tra xem là có chia hết hay không?
REM = 275 % 11 REM = 0
Qua ví dụ trên, ta đã hiểu được tính chất của số ISBN. Và thuật toán trong java để viết chương trình tạo ra số ISBN cũng tương tự như vậy. Hãy cùng tìm hiểu nhé.
Thuật toán triển khai bài toán số ISBN Java
- Bước 1: Lấy số ISBN gồm 10 chữ số từ người dùng.
- Bước 2: Kiểm tra xem người dùng có nhập số có mười chữ số hay không vì nếu số đó không phải là số có mười chữ số thì đó không thể là ISBN.
- Bước 3: Tìm tổng của mỗi chữ số bằng cách nhân mỗi chữ số từ trái sang phải với 1, 2, 3,…….,10.
- Bước 4: Tìm phần còn lại của tổng bằng 11. Nếu phần còn lại bằng 0, thì số đó là ISBN khác, không phải là ISBN.
Hãy xem đoạn code sau để kiểm tra xem số đó có phải là ISBN hay không bằng cách sử dụng các bước trên:
ISBNChecker.java
import java.util.Scanner; public class ISBNChecker { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // Bước 1: Nhập số ISBN System.out.print("Nhập số ISBN: "); String isbn = scanner.nextLine(); // Bước 2: Kiểm tra số ISBN có đúng 10 chữ số không if (isbn.length() != 10) { System.out.println("Số ISBN phải có 10 chữ số!"); return; } // Bước 3: Tính tổng các chữ số nhân với trọng số tương ứng int sum = 0; for (int i = 0; i < 10; i++) { char c = isbn.charAt(i); if (!Character.isDigit(c)) { System.out.println("Số ISBN chỉ có thể chứa các chữ số từ 0 đến 9!"); return; } int digit = Character.getNumericValue(c); sum += (i + 1) * digit; } // Bước 4: Kiểm tra xem phần còn lại của tổng khi chia cho 11 có bằng 0 hay không if (sum % 11 == 0) { System.out.println("Số ISBN hợp lệ!"); } else { System.out.println("Số ISBN không hợp lệ!"); } System.out.println("Chương trình này được viết bởi Freetuts.net!"); } }
Kết quả khi nhập các số vào:
Lưu ý: Đoạn code trên chỉ kiểm tra tính hợp lệ của số ISBN được nhập vào, không kiểm tra số đó có thực sự tồn tại hay không.
Như vậy là chúng ta đã thực hiện xong chương trình kiểm tra số ISBN. Chúc các bạn thực hiện thành công!!!