输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出“fu”字。十个数字对应的拼音如下:
0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi 8: ba 9: jiu
输入格式:
输入在一行中给出一个整数,如: 1234
。
提示:整数包括负数、零和正数。
输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如 yi er san si
。
-600输出样例:
fu liu ling ling
这种题超简单只要把它们联系在一起就行,用clss,struct都可以,但是推荐会STL的同学用STL,stl很方便
代码如下:
# include <iostream>
# include <numeric>
# include <algorithm>
# include <functional>
# include <list>
# include <map>
# include <set>
# include <stack>
# include <deque>
# include <queue>
# include <vector>
# include <ctime>
# include <cstdlib>
# include <cmath>
# include <string>
# include <cstring>
using namespace std;
void fun(map<int, string> &m)
{
m.insert(make_pair(0, "ling"));
m.insert(make_pair(1, "yi"));
m.insert(make_pair(2, "er"));
m.insert(make_pair(3, "san"));
m.insert(make_pair(4, "si"));
m.insert(make_pair(5, "wu"));
m.insert(make_pair(6, "liu"));
m.insert(make_pair(7, "qi"));
m.insert(make_pair(8, "ba"));
m.insert(make_pair(9, "jiu"));
}
int main(int argc, char *argv[])
{
map<int, string> m;
fun(m);
string str;
while(cin >> str)
{
int p = 0;
for(int i = 0; i < str.size(); i++)
{
if(p)
{
cout << " ";
}
p = 1;
if(str[i] == '-')
{
cout << "fu";
continue;
}
map<int, string>::iterator it = m.find(str[i] - '0');
cout << it->second;
}
cout << endl;
}
return 0;
}