L1-007 念数字分数 10

输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出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

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include
using namespace std;

//发音数组
char pronce[11][5] = { "fu", "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" };

int main() {
	int N, fir = 0, L = 0;//fir用来区分第一个空格,L表示整数分解后的个数
	int rN[1000] = { 0 };//存放分解后的整数N

	cin >> N;

	if (N < 0) {//小于0或者等于0单独讨论
		cout << pronce[0];

		N *= -1;

		fir++;
	} else if (N == 0) {
		cout << pronce[1];
	} 

	while (N > 0) {//分解N
		int temp = N % 10;
		N /= 10;
		
		rN[L++] = temp;
	}

	for (int i = L - 1; i >= 0; i--) {
		if (fir != 0) {
			cout << " ";
		}

		cout << pronce[rN[i] + 1];
		fir++;
	}

	return 0;
}

注意一下空格的判断

你可能感兴趣的:(每日两题,算法,c++,数据结构)