H1:计算通用产品代码(UPC)的校验位(选作)背景许多年来,货物生产商都会把超市售卖的每件商品上放置一个条码
这种被称为通用产品代码(UniversalProductCode,缩写UPC)的条码可以识别生产商和产品
超市可以通过扫描产品上的条码来确定支付此项商品的费用
每一个条码由十二位数字构成,通常这些数字会显示在条码下面
例如,包装为26盎司的Morton牌碘化盐所用条码下的数字是:024600010030第一个数字表示商品的种类(0表示大部分的食品杂货,2表示需要称量的货品,3表示药品或和健康相关的商品,而5表示优惠券)
接下来的一组五位数字用来识别生产商
而第二组五位数字则用来区分产品类型(其中包括包装尺寸)
最后一位数字是“校验位”,它可以帮助鉴别先前数字中的错误
如果条码扫描出现错误,那么前十一位数字和最后一位数字可能会不一致,而超市扫描机也会拒绝整个条码
下面是一种计算校验位的方法:首先把第一位、第三位、第五位、第七位、第九位和第十一位数字相加
然后把第二位、第四位、第六位、第八位和第十位数字相加
接着把第一次加法结果乘以3后再加上第二次加法的结果
随后,再把上述结果减去1
减法后的结果除以10取余数
最后,用9减去上一步骤中得到的余数
现在以Morton碘盐为例,第一组数字的加法是0+4+0+0+0+3=7,而第二组数字的加法是2+6+0+1+0=9
把第一组加法值乘以3后再加上第二组加法值得到的结果是30
再减去1,结果变为29
再把这个值除以10取余数为9
9在减去余数结果9,最终值为0
输入每次输入三行数据,第一行是UPC的第一位数字,第二行是UPC的第一组五位数字,第三行是UPC的第二组五位数字
输出UPC的校验位提示本题有隐藏测试用例
如果想多找不同的实例验证你的算法,可以拿身边书或食品背后的条码测试一下
#include2
main()3