信用卡号的验证Java练习题



public class CardNum1 {


static boolean f(String s){

int sum=0;
for (int i = s.length()-1; i >= 0; i--) {
int x=s.charAt(i)-'0';
if(i%2==1){
x=x*2;
if(x>=10)x-=9;
}
sum+=x;
}
return sum%10==0;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println(f("356406010024817"));
System.out.println(f("358973017867744"));
System.out.println(f("356827027232781"));
System.out.println(f("306406010024817"));
System.out.println(f("358973017867754"));

}


}

---------------------------------------------------------------------



public class CardNum2 {


static boolean f(String s){
int sum=0;
int []a={0,2,4,6,8,1,3,5,7,9};
for (int i = 0; i < s.length()-1; i++) {
int x=s.charAt(s.length()-1-i)-'0';
if(i%2==0)x=a[x];
sum+=x;
}
return sum%10==0;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println(f("356406010024817"));
System.out.println(f("358973017867744"));
System.out.println(f("356827027232781"));
System.out.println(f("306406010024817"));
System.out.println(f("358973017867754"));
}


}

猜你喜欢

转载自blog.csdn.net/qq_41821218/article/details/79514770