Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码。 例如:690123456789 计算其校验码的过程为: @前十二位的奇数位和6+0+2+4+6+8=26 @前十二位的偶数位和9+1+3+5+7+9=34 @将奇数和与偶数和的三倍相加26+34*3=128 @取结果的个位数:128的个位数为8 @用10减去这个个位数10-8=2 所以校验码为2 (注:如果取结果的个位数为0,那么校验码不是为10(10-0=10),而是0) 实现方法ean13()计算验证码,输入12位条码,返回带验证码的条码。 例:输入:692223361219输出:6922233612192
import java.util.Scanner; public class workN { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr= new int[13]; for(int i=0;i<(arr.length-1);i++){ System.out.println("请输入12个0~9之间的数字第"+(i+1)+"个:"); arr[i] = sc.nextInt(); } int oddnum =0;int evennum =0; for(int i=0;i<=11;i++){ if(i % 2 == 0){ oddnum += arr[i]; }else if(i % 2 == 1){ evennum += arr[i]; } } int code; int result=oddnum+evennum*3; int ge =result % 10; if(ge != 0){ code=10-ge; }else { code=0; } arr[12]= code ; for(int i=0;i<=arr.length;i++){ System.out.print(arr[i]); } } }