题目217
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
1 #include<stdio.h> 2 3 4 5 int main(){ 6 int T; 7 scanf("%d",&T); 8 while(T--){ 9 int y; 10 char x; 11 getchar(); //过滤空格 12 scanf("%c %d",&x,&y); 13 14 if(x>='a'&&x<='z') 15 printf("%d ",-(x-96)+y); 16 if(x>='A'&&x<='Z') 17 printf("%d ",(x-64)+y); 18 19 20 21 } 22 23 return 0; 24 }*/ 25 //采用函数调用 26 #include<stdio.h> 27 int f( char x){ 28 if(x>='a'&&x<='z') 29 return (1); 30 if(x>='A'&&x<='Z') 31 return (0);} 32 int main(){ 33 int T; 34 scanf("%d",&T); 35 36 while(T--){ 37 int y; 38 char x; 39 getchar(); 40 41 scanf("%c %d",&x,&y); 42 if(f(x) ) printf("%d ",-(x-96)+y); 43 if(f(x)==0) printf("%d ",(x-64)+y); 44 } 45 46 return 0; 47 } 48