如下例业务是,计算条码验证,描述如下: 题目:en-13 条码验证计算 验证码条码共 13 位,
代表了一件商品编码,前 12 位(692116851128)有具体代表含义,第 13 位是通过如下步骤算出来的:
第 1 步:取出该数的奇数位和,c1 = 6 + 2 + 1 + 8 + 1 + 2 = 20
第 2 步:取出该数的偶数位和,c2 = 9 + 1 + 6 + 5 + 1 + 8 = 30
第 3 步:将"奇数和"和"偶数和的三倍"相加,cc = c1+c2*3 = 20 + 30 * 3 = 110
第 4 步:取结果的个位数(对 10 取余):110 的个位数为(110%10=0)
第 5 步:用 10 减去这个个位数:10 - 0 = 10
第 6 步:对得到的数再取个位数(对 10 取余):10%10=0
所以校验码为 0`
int oddNum=0;
int evenNum=0;
int summ=0;
int yu=0;
int yu2=0;
String str="692116851128";
//String本身就是一个数组
for(int i=0;i<str.length();i++) {
if(i%2==0) {//下标是偶
char charAt2=str.charAt(i);//charAt返回所选数组的下标的值
oddNum+=charAt2-48;
}else {//下标是奇数
char charAt2=str.charAt(i);
evenNum+=charAt2-48;
}
}
System.out.println("偶数和:"+evenNum);
System.out.println("奇数和:"+oddNum);
summ=oddNum+evenNum*3;
System.out.println("加"+summ);
yu=summ%10;
System.out.println("取余"+yu);
yu=10-yu;
yu2=yu%10;
System.out.println("效验码为:"+yu2);