杭电oj刷题(2055)

An easy problem

题目描述:

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).

Input

On the first line, contains a number T.then T lines follow, each line is a case.each case contains a letter and a number.

Output

for each case, you should the result of y+f(x) on a line.

Sample Input

6 
R 1 
P 2 
G 3 
r 1 
p 2 
g 3

Sample Output

19 
18 
10 
-17 
-14 
-4

通过答案:

#include<iostream>
using namespace std;
 
int f(char c){
    int res;
    if(c>='A'&&c<='Z')        //当c为大写字母 
        res = c-'A'+1;
    else                      //当c为小写字母 
        res = 'a'-c-1;    
    return res;
}
int main(){
    int t,i;
    cin>>t;
    for(i=0;i<t;i++){
        char x;
        int y,result;
        cin>>x>>y;
        result = f(x);
        cout<<result+y<<endl;
    }
    return 0;
}
发布了76 篇原创文章 · 获赞 3 · 访问量 1871

猜你喜欢

转载自blog.csdn.net/ZhangShaoYan111/article/details/104286781