Friday, June 20, 2014

Java Exercise Nr. 26 (Selections)

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);
  }
}

1 comment:

  1. Bad..
    User 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]

    ReplyDelete

Author