HDU - 2055 An easy problem

Description

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>
#include <cstdio>

using namespace std;

int f(char c)
{
    int n, flag = 1;
    if (c >= 'a' && c <= 'z')
    {
        flag = -1;
        c = c - 'a' + 'A';
    }
    n = c - 'A' + 1;
    n *= flag;
    return n;
}

int main()
{
    int n;
    int y, sum;
    char x;

    scanf("%d", &n);
    while (n--)
    {
        getchar();
        scanf("%c %d", &x, &y);
        sum = y + f(x);
        printf("%d\n", sum);
    }
    return 0;
}
发布了329 篇原创文章 · 获赞 342 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/Aibiabcheng/article/details/105336985