題目連結: https://zerojudge.tw/ShowProblem?problemid=a020

# 解題思路

把字母的部分直接轉成數字陣列存著,接著再根據輸入的字母去對表就好了
(我使用的方法是直接用 ASCII 強轉的方式喔)
之後再逐項累加就好,記得,字串的儲存是 ASCII 碼,所以,要先減掉 '0' 才能當正常數字運算

# 程式碼

#include<iostream>
using namespace std;
int main(){
    int a[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=a[s[0]-'A'];
        for(int i=1;i<s.length();i++)
            sum+=(s[i]-'0')*(9-i);
        sum+=s[9]-'0';
        if(sum%10==0)
            cout<<"real"<<endl;
        else
            cout<<"fake"<<endl;
  }
}
更新於 閱讀次數

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

Zrn Ye LinePay

LinePay