a letter and a number
描述
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).
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
#include<iostream>
using namespace std;
int main()
{
char x;
int n,y;
cin>>n;
while(n--){
cin>>x>>y;
int m=0;
if(x-'a'>=0)
m=y-(x-'a')-1;
else
m=y-('A'-x)+1;
cout<<m<<endl;
}
return 0;
}
思路解析:
这里有一个小技巧,因为字符x只有大写和小写字母这两种情况,我们又知道“A”的asc码是65,“a”的asc码是97,即'a'>'A'。
所以只要(x-'a')>=0,x就是小写的字母,否则就是大写字母。
然后根据大小写时,来计算m的取值就可以了。。。