西电大第十六届程序设计竞赛 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; }