題目連結: 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; | |
} | |
} |