HDU 2055 - An easy problem

An easy problem

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 30364    Accepted Submission(s): 19812


 

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

     直接利用ASCII值就行了。

代码:

#include<stdio.h>
int main()
{
	int a[70],b[70],i,j,t,sum,m,n;
	char ch;
	scanf("%d",&t);
	while(t--)
	{
		j=1;
		sum=0;
		for(i=1;i<=26;i++)
			a[i]=i;
		for(i=1;i<=26;i++)
			b[i]=-i;
		getchar();
		scanf("%c",&ch);
		if(ch>='A'&&ch<='Z')
		{
			m=a[ch-'@'];
			scanf("%d",&n);
			sum=m+n;
			printf("%d\n",sum);
		}
		else if(ch>='a'&&ch<='z')
		{
			m=b[ch-'`'];
			scanf("%d",&n);
			sum=m+n;
			printf("%d\n",sum);
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/wan_ide/article/details/81482980