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
。
输入样例:
输出样例:
二、解题思路
用户输入 string 类型数据,然后存放至 char 数组中,用 switch 判断输出相应位置的拼音
三、代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| #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 来实现。