第2題

Universal Product Code (UPC,統一商品條碼),普遍使用於美洲。UPC是一個12碼的編碼系統,其中最後一碼為檢查碼(check digit),當我們經掃描得到一個12碼的UPC條碼時,我們可以把前11碼以公式計算出檢查碼;所計算出來的檢查碼可以跟第12碼比對,即可知道這個條碼是否正確。

檢查碼的計算公式如下:

  1. 將前11碼中,單數號的位置的值加總
  2. 將前11碼中,雙數號的位置的值加總
  3. 將第一項計算的結果乘以3,並與第二項的結果加總
  4. 將第三項計算的結果減1後取其個位數
  5. 9減去第四項計算的結果,其值即為檢查碼

舉例來說:某商品之UPC條碼為 013800151735,套用前述公式:

  1. 0+3+0+1+1+3 = 8
  2. 1+8+0+5+7 = 21
  3. 8×3+21=45
  4. 45-1=44 ← 取個位數4
  5. 9-4=5 ←檢查碼
  1. 設計一個名為CheckcodeUPC.java的程式
  2. 讓使用者輸入一個UPC條碼的前11碼
  3. 計算並輸出及檢查碼
  4. 程式執行結果參考:

Please the first 11 digits of a UPC bar code: 01380015173
Check digit is 5.

提示:下面這個程式讓使用者輸入三個數字存放到char型態的變數中,因為'0’的ASCII碼為48,所以所有的輸入減掉48後就得到整數值。

#include <stdio.h>
 
int main()
{
  char x,y,z; 
 
  scanf("%c%c%c", &x, &y, &z);
  x-=48;
  y-=48;
  z-=48;
  printf("%d%d%d",x,y,z);
}