PTA团队天梯赛║L1-007 念数字
一、题目要求
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出
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
二、解题思路
用户输入 string 类型数据,然后存放至 char 数组中,用 switch 判断输出相应位置的拼音
三、代码
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
string n;
cin >> n;
char a[20];
int i = 0;
for(int j=0; j < n.length(); j++)
{
a[j] = n[j];
}
while(i < n.length())
{
switch (a[i])
{
case '-':
cout << "fu";
break;
case '0':
cout << "ling";
break;
case '1':
cout << "yi";
break;
case '2':
cout << "er";
break;
case '3':
cout << "san";
break;
case '4':
cout << "si";
break;
case '5':
cout << "wu";
break;
case '6':
cout << "liu";
break;
case '7':
cout << "qi";
break;
case '8':
cout << "ba";
break;
case '9':
cout << "jiu";
break;
}
if(i == n.length() - 1) {cout << endl; break;}
cout << " ";
i++;
}
return 0;
}
四、反思总结
题目难度不大,但是一开始走了弯路,第一次想法为用 int 存储输入的整数,直接判断每一位上的数字较为麻烦复杂,因此改换为先使用 string 类型转存 char 数组的方式,更加简单快捷。主要实现功能部分用 switch 来实现。