您的位置:首页 > 其它

1082. Read Number in Chinese (25)

2015-12-19 12:02 453 查看
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<vector>
#include<map>
#include<stack>
#include<queue>
using namespace std;

int main()
{

const  char *str[9]={"","Shi","Bai","Qian","Wan","Shi","Bai","Qian","Yi"};
const  char *num[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
char s[10];
vector<const char*> v;
scanf("%s",s);
int length=strlen(s);
if(s[0]=='-')
{
v.push_back("Fu");
for(int i=0;i<length;i++)
s[i]=s[i+1];
length--;
}
else if(s[0]=='0'&&length==1)
{
printf("ling\n");
return 0;
}

int flag=0;
int cnt=0;
for(int i=0;i<length;i++)
{
if(s[i]!='0')
{   if(cnt>0&&(length-i-1!=4||s[i]!=0 ))
v.push_back("ling");
v.push_back(num[s[i]-'0']);
cnt=0;
}

else if(s[i]=='0')
{

cnt++;
}
if(cnt>0&&length-i-1==4&&cnt<4&&s[i]=='0')
v.push_back(str[length-i-1]);
else if(i!=length-1)
{
if(s[i]!='0')
v.push_back(str[length-i-1]);

}

}
for(int i=0;i<v.size();i++)
if(i==0)
printf("%s",v[i]);
else
printf(" %s",v[i]);
printf("\n");

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: