a letter and a number
时间限制:
3000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
we define f(A) = 1, f(a) = -1, f(B) = 2, f(b) = -2, ... f(Z) = 26, f(z) = -26;
Give you a letter x and a number y , you should output the result of y+f(x).-
输入
- On the first line, contains a number T(0<T<=10000).then T lines follow, each line is a case.each case contains a letter x and a number y(0<=y<1000). 输出
- for each case, you should the result of y+f(x) on a line 样例输入
-
6 R 1 P 2 G 3 r 1 p 2 g 3
样例输出
-
19 18 10 -17 -14 -4
上传者
问题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=217
问题分析:
问题即考察一种对应关系的表达:f(A) = 1, f(a) = -1, f(B) = 2, f(b) = -2, ... f(Z) = 26, f(z) = -26;
利用a和A的ASCII码即可找到其对应关系。
代码:
#include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #include <vector> #include <queue> #include <stack> #include <map> #include <string> #include <algorithm> #include <iomanip> using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char** argv) { /*freopen("file/input.txt","r",stdin); freopen("file/output.txt","w",stdout);*/ int n; scanf("%d",&n); getchar(); while(n--){ char c; int y; scanf("%c%d",&c,&y); //int ans=; printf("%d\n",(c>='a')?('a'-c-1+y):(c-'A'+1+y)); getchar(); } return 0; }