條形碼數 最好壹位是校驗位,是不計入計算的
所以for循環只取到倒數第二位才是正確的
按照條形碼數的定義,寫會比較直觀
找了壹個12位的條形碼,修改了壹下,字符串校驗通過方法獲得,沒有寫死,也適用
public?class?test9?{
public?static?void?main(String[]?args)?
{
String?en13?=?"693461310001";
// String?en13?=?"6901020709017";
// String?en13?=?"9771671216014";
// String?en13?=?"6911989107458";
int?a?=?0;
int?b?=?0;
int?cout?=?1;
for(int?i?=?en13.length()?-1?-1?;?i?>=?0;?i--){
int?num?=?en13.charAt(i)-'0';
if((cout%2)==0){
a+=num;
}else{
b+=num;
}
cout?++;
}
System.out.println(b);
System.out.println(a);
int?sum?=?a+b*3;
System.out.println(sum);
int?c?=?sum%10;
int?d?=?10-c;
System.out.println(d);
if(d==en13.charAt(en13.length()?-?1)-'0'){
System.out.println("OK");
}else{
System.out.println("NO");
}
}
}