Friday 19 August 2016

Chapter 5 Exercise 47, Introduction to Java Programming, Tenth Edition Y. Daniel LiangY.

*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

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