題目連結: 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;
    }
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay