栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【java】生成13位条形码(Ean-13码)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【java】生成13位条形码(Ean-13码)

【java】生成13位条形码(Ean-13码)

题目:

生成13位条形码
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)
实现上述代码的功能,计算验证码,输入12位条码,返回带验证码的条码。
例:输入:692223361219 输出:6922233612192

import java.util.Scanner;
class TiaoXingMa 
{
	public static void main(String[] args) 
	{
		Scanner scan = new Scanner(System.in);
		System.out.println("请依次输入前12位条码:");

		int oddBitSum = 0;
		int evenBitSum = 0;
		long Tma = 0L;

		for (int i=1; i<13; i++)
		{
			int num = scan.nextInt();
			Tma = Tma * 10l + (long)num;
			if (num > 9 || num < 0)
			{
				System.out.println("每次只能输入一位0-9的数,请从第一位开始重新输入!");
				break;
			}
			if (i % 2 == 0)
			{	
				evenBitSum += num;
			}
			else 
			{
				oddBitSum += num;
			}
		}
		System.out.println("前12个数为:"+Tma);
		int threeAdd = oddBitSum + evenBitSum * 3; 
		int geweishu = threeAdd % 10;
		int jiaoYanMa = 0;
		if (geweishu != 0)
		{
			jiaoYanMa = 10 - geweishu;
		}
		Tma = jiaoYanMa + Tma * 10;
		System.out.println("完整的条形码为:"+Tma);

	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/770400.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号