【題目敘述】http://judge.epass2u.com/problem/APCS1070610-1
【類似題】ZeroJudge e283: APCS 類似題 – 小崴的特殊編碼
【解題想法】
- 將由0和1組成的四位數字(二進位)轉換成十進位數字,當作陣列的下標,即可速查對應的字元。
#include <iostream>
#include <cstring>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
char letter[16];
memset(letter, '\0', sizeof(letter));
letter[5] = 'A';
letter[7] = 'B';
letter[2] = 'C';
letter[13] = 'D';
letter[8] = 'E';
letter[12] = 'F';
for (int i=0; i<n; i++){
int x = 0, tmp;
for (int j=0; j<4; j++){
cin >> tmp;
x = 2 * x + tmp;
}
cout << letter[x];
}
cout << '\n';
return 0;
}
Python code (credit: Amy Chou)
letter = [' ' for _ in range(16)]
letter[5] = 'A';
letter[7] = 'B';
letter[2] = 'C';
letter[13] = 'D';
letter[8] = 'E';
letter[12] = 'F';
n = int(input())
for _ in range(n):
tmp = list(map(int, input().split()))
x = 0
for t in tmp:
x = 2 * x + t;
print(letter[x], end='')
print()