In: Computer Science
The last digit of a credit card number is the check digit, which protects againts transaction errors. The following method is used to veryfy credit card numbers. For the simplicity we can assume that the credit card has 8 digits instead of 16. Follwing steps explains the algorithm in determining if a credit card number is a valid card. Starting from the right most digit, form the sum of every other digit. For example, if the credit card is number is 43589795 then you form the sum 5+7+8+3 = 23 2 Double each digit that we have not included in the preceding step. Add all digits of resulting numbers. For example, with the number given above, doubling the digits starting with next to last one, yields 18, 18, 10, 8. Adding all digits in these values yield 1+8+1+8+1+0+8 = 27 Add sum of the two preceding steps. If the last digit of the result is zero, then the number is valid number Write a Java program that implements this algorithm (Designing your solution and perhaps wring the algorithm in pseudocode might be helpful). Your program should ask the user 8 digit credit card number and the printout if the credit card is valid or invalid card Grading Criteria: a) The correctness of your program/solution b) Variable naming (self describing) c) Identification of proper data type and constants (if applicable) d) Appropriate commenting and Indentation.
`Hey,
Note: Brother if you have any queries related the answer please do comment. I would be very happy to resolve all your queries.
import java.util.Scanner;
public class CreditCardCheck
{
public static void main(String args[])
{
String ns,n;
while(true)
{
System.out.print("Enter the 8 digit credit card number: ");
Scanner s=new Scanner(System.in);
ns=s.nextLine();
if(ns.length()==8)break;
else System.out.println("Wrong length, enter again");
}
n=String.format("%s %s",ns.substring(0,4),ns.substring(4,8));
//System.out.println(n);
int
s=Integer.parseInt(n.charAt(1)+"")+Integer.parseInt(n.charAt(3)+"")+Integer.parseInt(n.charAt(6)+"")+Integer.parseInt(n.charAt(8)+"");
String s1=(2*Integer.parseInt(n.charAt(0)+""))+"";
String s2=(2*Integer.parseInt(n.charAt(2)+""))+"";
String s3=(2*Integer.parseInt(n.charAt(5)+""))+"";
String s4=(2*Integer.parseInt(n.charAt(7)+""))+"";
int t=0;
if(s1.length()==2)t=Integer.parseInt(s1.charAt(0)+"")+Integer.parseInt(s1.charAt(1)+"");
else t=Integer.parseInt(s1.charAt(0)+"");
if(s2.length()==2)t=t+Integer.parseInt(s2.charAt(0)+"")+Integer.parseInt(s2.charAt(1)+"");
else t=Integer.parseInt(s2.charAt(0)+"");
if(s3.length()==2)t=t+Integer.parseInt(s3.charAt(0)+"")+Integer.parseInt(s3.charAt(1)+"");
else t=Integer.parseInt(s3.charAt(0)+"");
if(s4.length()==2)t=t+Integer.parseInt(s4.charAt(0)+"")+Integer.parseInt(s4.charAt(1)+"");
else t=Integer.parseInt(s4.charAt(0)+"");
int t1=t+s;
String t2=t1+"";
if(t2.charAt(1)=='0')System.out.println("The number is
valid");
else System.out.println("The number is not valid");
}
}
Kindly revert for any queries
Thanks.