信用卡校验

信用卡校验

当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。
import java.util.*;
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		String str=sc.nextLine();
		int[] n=new int[str.length()];
		int sum1=0;		//奇数项和
		int sum2=0;		//偶数项和
		if(str.length()%2==0){
			for(int i=0;i9){
					n[i]=n[i]-9;
				}
				sum1=sum1+n[i];
			}
			for(int i=1;i9){
					n[i]=n[i]-9;
				}
				sum1=sum1+n[i];
			}
			if((sum1+sum2)%10==0){
				System.out.println("成功");
			}
			else{
				System.out.println("失败");
			}
		}
	}
}

该校验的过程:
1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。
2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。
3、将奇数位总和加上偶数位总和,结果应该可以被10整除。

你可能感兴趣的:(java)