我的解題思路:
通過提到的求檢查碼方法,測試所有可能性(即:第一位大寫字母是A-Z),檢查求出來的檢查碼與輸入資料已有的末位檢查碼是否相同,如果相同便輸出該英文字母。
具體實操:
創建一個array,放入A-Z分別代表的數字大小(比如A代表10,然後需要把十位乘以1,個位乘以10,並相加,所以得出1,所以這個array的第一項是1)
給大家完整的表格,因為這個運算沒有任何技術含量:
int results[] = {
1, 10, 19, 28, 37, 46, 55, 64, 39, 73, 82,
2, 11, 20, 48, 29, 38, 47, 56, 65, 74, 83,
21, 3, 12, 30
};
然後,把輸入的前八位資料分別乘以8,7,6,5,4,3,2,1,得出一個數值
下一步,重複執行26次,把result中的第[i]加得出的數值中,如果這個最終數值c==檢查碼 or c==10 and 檢查碼==0 就輸出該英文字母。
第二個難點:如何輸出英文字母。
提示:因為char(一個數值) 會把那個數值在ASCII編碼中所對應的字母輸出,而且A-Z由65開始,是順序的
所以,如果要輸出A,就可以寫:char(65+i) 因為i會從0-25地變換,如果i==0的時候便通過檢測,説明A是其中一個可能的首字母,所以65+0==65,就會輸出'A'