題目連結: https://zerojudge.tw/ShowProblem?problemid=a054
# 解題思路
先逐項累加,記得,字串的儲存是 ASCII 碼,所以,要先減掉 '0' 才能當正常數字運算
之後,再判斷每一個區域號碼是否合乎狀況即可
# 程式碼
#include <iostream> | |
using namespace std; | |
int main(){ | |
int num[26]={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}; | |
string s; | |
while(cin>>s){ | |
int sum=0; | |
for(int i=0;i<8;i++) | |
sum+=(s[i]-'0')*(8-i); | |
for(int i=0;i<26;i++){ | |
int m=sum; | |
m+=num[i]; | |
m%=10; | |
int c= 10 - m; | |
if(c==10) | |
c=0; | |
if(c==(s[8]-'0')) | |
cout<<char(i+'A'); | |
} | |
cout<<endl; | |
} | |
} |