478-3279

总时间限制: 1000ms 内存限制: 65536kB

描述

在美国,商家都喜欢用好记的电话号码。人们常用的方法就是把电话号码拼成一个便于记忆的词汇或者短语,比如你可以通过Gino比萨店的电话号码301- GINO来定比萨。另一个方法就是把电话号码分为成组的数字,比如你可以通过必胜客的电话“三个十”:3-10-10-10来定比萨。
一个七位电话号码的标准形式是xxx-xxxx,如 123-4567。
通常,电话上的数字与字母的映射关系如下
A, B, C 映射到 2
D, E, F 映射到 3
G, H, I 映射到 4
J, K, L映射到5
M, N, O映射到6
P, R, S映射到7
T, U, V映射到8
W, X, Y映射到9
Q和Z并没有相关的映射。
你的任务就是把一个七位电话号码转为标准的xxx-xxxx格式,其中x表示数字

  • 输入
    第一行为输入的电话号码个数n(n < 100), 下面n行每行表示一个七位号码,这些号数为了便于记忆可能不是标准格式,但一定是合法的。
  • 输出
    对于行输入,输出一个标准格式的电话号码
  • 样例输入
    12
    4873279
    ITS-EASY
    888-4567
    3-10-10-10
    888-GLOP
    TUT-GLOP
    967-11-11
    310-GINO
    F101010
    888-1200
    -4-8-7-3-2-7-9-
    487-3279
  • 样例输出
    487-3279
    487-3279
    888-4567
    310-1010
    888-4567
    888-4567
    967-1111
    310-4466
    310-1010
    888-1200
    487-3279
    487-3279

题解:

– 及其骚气的模拟题,反正我觉得简单但恶心


代码:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int MAXN=1;

int n,sum;

int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        string s;
        cin>>s;
        int l=s.length();
        sum=0;
        for(int j=0;j<l;j++){
            if(s[j]!='-'){
            if(s[j]>='0'&&s[j]<='9')
                printf("%c",s[j]);
            else{
            if(s[j]=='A'||s[j]=='B'||s[j]=='C')
                printf("%d",2);
            else if(s[j]=='D'||s[j]=='E'||s[j]=='F')
                printf("%d",3);
            else if(s[j]=='G'||s[j]=='H'||s[j]=='I')
                printf("%d",4);
            else if(s[j]=='J'||s[j]=='K'||s[j]=='L')
                printf("%d",5);
            else if(s[j]=='M'||s[j]=='N'||s[j]=='O')
                printf("%d",6);
            else if(s[j]=='P'||s[j]=='R'||s[j]=='S')
                printf("%d",7);
            else if(s[j]=='T'||s[j]=='U'||s[j]=='V')
                printf("%d",8);
            else 
                printf("%d",9);
            }
            sum++;
            if(sum==3)
                printf("-");
            }
        }
        cout<<endl;
    }
    return 0;
}
D: 478-3279
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值