*5.47 (Business: check ISBN-13) ISBN-13 is a new standard for indentifying books. It
uses 13 digits d1d2d3d4d5d6d7d8d9d10d11d12d13. The last digit d13 is a checksum,
which is calculated from the other digits using the following formula:
10 - (d1 + 3d2 + d3 + 3d4 + d5 + 3d6 + d7 + 3d8 + d9 + 3d10 + d11 + 3d12)%10
If the checksum is 10, replace it with 0. Your program should read the input as a
string. Here are sample runs:
Enter the first 12 digits of an ISBN-13 as a string: 978013213080
The ISBN-13 number is 9780132130806
Enter the first 12 digits of an ISBN-13 as a string: 978013213079
The ISBN-13 number is 9780132130790
Enter the first 12 digits of an ISBN-13 as a string: 97801320
97801320 is an invalid input
Enter the first 12 digits of an ISBN-13 as a string: 978013213080
The ISBN-13 number is 9780132130806
Enter the first 12 digits of an ISBN-13 as a string: 978013213079
The ISBN-13 number is 9780132130790
Enter the first 12 digits of an ISBN-13 as a string: 97801320
97801320 is an invalid input
import java.util.Scanner; public class ProgrammingEx5_47 { public static void main(String[] args) { Scanner input = new Scanner(System.in); // Enter saving amount System.out .print("Enter the first 12 digits of an ISBN-13 as a string:"); String s = input.nextLine(); int sum = 0; if (s.length() != 12) { System.out.println(s + " is an invalid input"); System.exit(0); } for (int i = 0; i < s.length(); i++) { if ((i + 1) % 2 == 0) { sum += s.charAt(i) - 48; } else { sum += 3 * (s.charAt(i) - 48); } } sum = (10 - sum%10)%10; System.out.println("The ISBN-13 number is " +s + sum); } }
No comments:
Post a Comment