ACM/ICPC 2009 哈尔滨现场赛 YY and YY Again 题解
水题。弄一个 256 元素的数组,先全初始化为 0, 然后把大写的 ‘A’ 到 ‘Z’ 为下标的地方分别初始化为 1 到 26 就可以了。然后每行每行地读进来,把字符作为下标,取刚才那个数组的相应数字,加在一个变量里,输出就好了。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <cstdio> using namespace std; int score_table[256] = {0}; inline void init() { for (char ch = 'A'; ch <= 'Z'; ++ch) score_table[ch] = ch - 'A' + 1; } char buffer[222]; int main() { init(); while (gets(buffer)) { int score = 0; for (char *p = buffer; *p; ++p) score += score_table[*p]; if (score > 100) printf("INVALID\n"); else printf("%d\n", score); } return 0; } |
