小明的烦恼
原创
©著作权归作者所有:来自51CTO博客作者wx5f8d5a7b525f9的原创作品,请联系作者获取转载授权,否则将追究法律责任
时间限制:3000 ms | 内存限制:65535
难度:1
-
描述
小明最近接到了一个棘手的任务,他们公司有一个电话簿.但是这是一个奇怪的电话簿,因为它不是用数字记录电话号码,而是用数字键上所对应的字母来记录电话号码(2-abc,3-def,4-ghi,5-jkl,6-mno,7-pqrs,8-tuv,9-wxyz),电话号码只有11位。现在你的任务就是帮小明写一个程序来把这些字母的电话号码转化成数字的电话号码。
输入
第一行输入一个正整数T(0<T<=100),表示测试数据的组数
每组测试数据只有一行,输入一串字符(字符长度为11);
输出
每组输出占一行,输出数字的电话号码
样例输入
3
phqghumeayl
nlfdxfircvs
cxggbwkfnqd
74744863295
65339347287
29442953673
#include<stdio.h>
#include<string.h>
int main(){
int n;
char str[11];
scanf("%d",&n);
while(n--){
scanf("%s",str);
int t,i,j;
t=strlen(str);
for(i=0;i<t;i++){
j=(str[i]-'a'+6)/3;
if(j<=6)
printf("%d",j);
else{
if(str[i]>='p'&&str[i]<='s')
printf("7");
if(str[i]>='t'&&str[i]<='v')
printf("8");
if(str[i]>='w'&&str[i]<='z')
printf("9");
}
}
printf("\n");
}
return 0;
}
很水的题,我一直想找一个简单的方法,最后还是用笨方法AC了,这里用nstr[110]=“222233344455566677778889999”,可简化解题过程。