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

思路:拆分各位,注意输入为0的情况。

#include<iostream>
#include<vector>
#include <stdlib.h>
using namespace std;

string transform(int num)
{
	string str;
	switch(num)
	{
		case 0: 
			 str = "ling";
			 break;
  		case 1: 
  			 str = "yi";
			 break;
		case 2: 
			 str = "er";
			 break;
		case 3: 
			 str = "san";
			 break;
		case 4: 
			 str = "si";
			 break;
		case 5: 
			 str = "wu";
			 break;
		case 6: 
			 str = "liu";
			 break;
		case 7: 
			 str = "qi";
			 break;
		case 8: 
			 str = "ba";
			 break;
  		case 9: 
		  	 str = "jiu";
			 break;	 
	    default:
	    	break;
	}
	return str;
}

int main(){	
	int N;
	cin>>N;
	if(N<0)
        cout<<"fu "; 
  	vector<int> list;	
  	N = abs(N);
  	if(N==0)
	    list.push_back(0);
  	else
 	{
  		while(N!=0)
		{
	        list.push_back(N%10);
            N /= 10; 
	    }
  	}
	
	
	
	for(int i=list.size()-1;i>=0;i--)
	{
		cout<<transform(list.at(i));
		if(i!=0)
		    cout<<" "; 
	}
	return 0;	
} 

猜你喜欢

转载自blog.csdn.net/numbstorm/article/details/79866225