162k views
5 votes
/*(Business: check ISBN-10) An ISBN-10 (International Standard Book Number)consists of 10 digits: d1d2d3d4d5d6d7d8d9d10. The last digit, d10, is a checksum,which is calculated from the other nine digits using the following formula:(d1 * 1 + d2 * 2 + d3 * 3 + d4 * 4 + d5 * 5 +d6 * 6 + d7 * 7 + d8 * 8 + d9 * 9) % 11If the checksum is 10, the last digit is denoted as X according to the ISBN-10convention. Write a program that prompts the user to enter the first 9 digits anddisplays the 10-digit ISBN (including leading zeros). Your program should readthe input as an integer. Here are sample runs:*/import java.util.Scanner;public class Exercise_03_09 { public static void main(String[] args) { Scanner input = new Scanner(System.in); // Prompt the user to enter the first 9 digits of a 10-digit ISBN System.out.print("Enter the first 9 digits of an ISBN as integer: "); int isbn = input.nextInt(); // Extract the digits of the ISBN int d1 = isbn / 100000000; int remainingDigits = isbn % 100000000; int d2 = remainingDigits / 10000000; remainingDigits %= 10000000; int d3 = remainingDigits / 1000000; remainingDigits %= 1000000; int d4 = remainingDigits / 100000; remainingDigits %= 100000; int d5 = remainingDigits / 10000; remainingDigits %= 10000; int d6 = remainingDigits / 1000; remainingDigits %= 1000; int d7 = remainingDigits / 100; remainingDigits %= 100; int d8 = remainingDigits / 10; remainingDigits %= 10; int d9 = remainingDigits; // Compute d10 int d10 = (d1 * 1 + d2 * 2 + d3 * 3 + d4 * 4 + d5 * 5 + d6 * 6 + d7 * 7 + d8 * 8 + d9 * 9) % 11; // Display the 10-digit ISBN System.out.println("The ISBN-10 number is " + d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9); if (d10 == 10) System.out.println("X"); else System.out.println(d10); }}

User IqbalBary
by
3.6k points

1 Answer

2 votes

Answer:

It seems your code is working, but you may want to replace your first print statement with following so that your last digit will be concatenated to other numbers

System.out.print("The ISBN-10 number is " + d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9);

Step-by-step explanation:

Let's go through your code and see what it does.

You asked the user for the 9 digit number. Then, you used division and modulo to get each digit of the given number. You calculated the last digit using the given formula. After that, you check the checksum to decide the last digit of the number. If the checksum is equal to 10, the last digit is denoted as X. Otherwise, it is the digit itself.

Finally, you print the whole 10 digit number

User Xzhu
by
3.3k points