西电大第十六届程序设计竞赛 A-GRE

题目描述

   不愤不启不悱不发,王萌萌为了能够成功上研,开始刻苦背GRE单词,但是由于她过于刻苦,在背会英语单词的同时,把中文读音忘了。于是王萌萌又开始复习起中文发音,她先从数字开始复习起。。。 
  题目很简单,王萌萌给出在[0, 10]范围内的整数的英文单词,你教她中文发音。

输入描述:

第一行输入一个T,表示王萌萌询问的单词。(T <= 20) 后面T行每行一个英文单词,题目保证英文单词是[0, 10]数字所表示的单词且单词书写无误,单词用小写形式给出。

输出描述:

对于每一个输入的单词,输出它的中文读音,请用小写形式给出。
示例1

输入

5
zero
one
one
four
eight

输出

ling
yi
yi
si
ba
自己写的代码,最笨的方法,由于只有一到十,所以把所有的情况进行枚举即可
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        string ss;
        cin>>ss;
        if(ss[0]=='z')
            cout<<"ling"<<endl;
        else if(ss[0]=='o')
            cout<<"yi"<<endl;
        else if(ss[0]=='e')
            cout<<"ba"<<endl;
        else if(ss[0]=='n')
            cout<<"jiu"<<endl;
        else if(ss[0]=='t'&&ss[1]=='w')
            cout<<"er"<<endl;
        else if(ss[0]=='t'&&ss[1]=='h')
            cout<<"san"<<endl;
        else if(ss[0]=='t'&&ss[1]=='e')
            cout<<"shi"<<endl;
        else if(ss[0]=='s'&&ss[1]=='i')
            cout<<"liu"<<endl;
        else if(ss[0]=='s'&&ss[1]=='e')
            cout<<"qi"<<endl;
        else if(ss[0]=='f'&&ss[1]=='i')
            cout<<"wu"<<endl;
        else cout<<"si"<<endl;
    }
}

大佬写的代码,用map把中英文对应

#include<bits/stdc++.h>
using namespace std;
int main()
{
    map<string,string>number;
    number["zero"]="ling";
    number["one"]="yi";
    number["two"]="er";
    number["three"]="san";
    number["four"]="si";
    number["five"]="wu";
    number["six"]="liu";
    number["seven"]="qi";
    number["eight"]="ba";
    number["nine"]="jiu";
    number["ten"]="shi";
    int n;
    string s;
    cin>>n;
    while(n--)
    {
        cin>>s;
        cout<<number[s]<<endl;
    }
    return 0;
 }
原文地址:https://www.cnblogs.com/andrew3/p/8908576.html