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:
If the checksum is 10 , the last digit is denoted as X according to the ISBN-10 convention. Write a program that prompts the user to enter the first 9 digits and displays the 10-digit ISBN (including leading zeros). Your program should read the input as an integer.
Solution:
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int d1, d2, d3, d4, d5, d6, d7, d8, d9;
int d10;
System.out.print("Enter the first 9 digits of an ISBN as integer:");
d1 = s.nextInt();
d2 = s.nextInt();
d3 = s.nextInt();
d4 = s.nextInt();
d5 = s.nextInt();
d6 = s.nextInt();
d7 = s.nextInt();
d8 = s.nextInt();
d9 = s.nextInt();
d10 = (d1 * 1 + d2 * 2 + d3 * 3 + d4 * 4 + d5 * 5 + d6 * 6 + d7 * 7 + d8 * 8 + d9 * 9) % 11;
if(d10 == 10) {
String output = d1 + "" + d2 + "" + d3 + "" + d4 + "" + d5 + "" + d6 + "" + d7 + "" + d8 + "" + d9 + "X";
System.out.print(output);
} else {
String output = d1 + "" + d2 + "" + d3 + "" + d4 + "" + d5 + "" + d6 + "" + d7 + "" + d8 + "" + d9 + "" + d10;
System.out.print(output);
}
}
Bad..
ReplyDeleteUser has to press "enter" after every digit
Check my code
[code]
Scanner input = new Scanner(System.in);
System.out.print("Enter the first 9 digits of an ISBN: ");
String isbn9st = input.next() ;
int d1 = isbn9st.charAt(0);
int d2 = isbn9st.charAt(1);
int d3 = isbn9st.charAt(2);
int d4 = isbn9st.charAt(3);
int d5 = isbn9st.charAt(4);
int d6 = isbn9st.charAt(5);
int d7 = isbn9st.charAt(6);
int d8 = isbn9st.charAt(7);
int d9 = isbn9st.charAt(8);
[/code]