#include<iostream>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
map<char,string> numMap;
map<int,string> utilMap;//单位 个、拾、佰、仟
void init()
{
numMap['0']="零";
numMap['1']="壹";
numMap['2']="贰";
numMap['3']="叁";
numMap['4']="肆";
numMap['5']="伍";
numMap['6']="陆";
numMap['7']="柒";
numMap['8']="捌";
numMap['9']="玖";
utilMap[0]="";
utilMap[1]="拾";
utilMap[2]="佰";
utilMap[3]="仟";
}
void dealMoneyA(string sMoney)
{
if(sMoney=="0") return ;
reverse(sMoney.begin(),sMoney.end());
vector<string> res;
int num=sMoney.size();
int pos=0;
for(int i=0;i<num;i++)
{
//先输出单位 后输出数值
if(i/4==0 && pos==0){
res.push_back("元");
pos++;
}
else if(i/4==1 && pos==1){
res.push_back("万");
pos++;
}
else if(i/4==2 && pos==2){
res.push_back("亿");
pos++;
}
else if(i/4==3 && pos==3){
res.push_back("万");
pos++;
}
if(sMoney[i]=='0')
{
if(i%4!=0 && sMoney[i-1]!='0') res.push_back("零");
}else if(i%4==1 && sMoney[i]=='1') res.push_back("拾");
else{
res.push_back(utilMap[i%4]);
res.push_back(numMap[sMoney[i]]);
}
}
string resMoney="";
for(int i=res.size()-1;i>=0;i--) resMoney+=res[i];
cout<<resMoney.c_str();
}
void dealMoneyB(string sMoney)
{
if(sMoney=="00"){
cout<<"整";
return ;
}
if(sMoney.length()>0 && sMoney[0]!='0')
cout<<numMap[sMoney[0]].c_str()<<"角";
if(sMoney.length()>1 && sMoney[1]!='0')
cout<<numMap[sMoney[1]].c_str()<<"分";
}
int main(int argc,char* argv[])
{
init();
string input;
while(cin>>input)
{
int npos=input.find(".");
string MoneyA=input;//整数部分
string MoneyB="00";//浮点型部分
if(npos!=-1)
{
MoneyA=input.substr(0,npos);
MoneyB=input.substr(npos+1);
}
cout<<"人民币";
dealMoneyA(MoneyA);
dealMoneyB(MoneyB);
cout<<endl;
}
return 0;
}
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
map<char,string> numMap;
map<int,string> utilMap;//单位 个、拾、佰、仟
void init()
{
numMap['0']="零";
numMap['1']="壹";
numMap['2']="贰";
numMap['3']="叁";
numMap['4']="肆";
numMap['5']="伍";
numMap['6']="陆";
numMap['7']="柒";
numMap['8']="捌";
numMap['9']="玖";
utilMap[0]="";
utilMap[1]="拾";
utilMap[2]="佰";
utilMap[3]="仟";
}
void dealMoneyA(string sMoney)
{
if(sMoney=="0") return ;
reverse(sMoney.begin(),sMoney.end());
vector<string> res;
int num=sMoney.size();
int pos=0;
for(int i=0;i<num;i++)
{
//先输出单位 后输出数值
if(i/4==0 && pos==0){
res.push_back("元");
pos++;
}
else if(i/4==1 && pos==1){
res.push_back("万");
pos++;
}
else if(i/4==2 && pos==2){
res.push_back("亿");
pos++;
}
else if(i/4==3 && pos==3){
res.push_back("万");
pos++;
}
if(sMoney[i]=='0')
{
if(i%4!=0 && sMoney[i-1]!='0') res.push_back("零");
}else if(i%4==1 && sMoney[i]=='1') res.push_back("拾");
else{
res.push_back(utilMap[i%4]);
res.push_back(numMap[sMoney[i]]);
}
}
string resMoney="";
for(int i=res.size()-1;i>=0;i--) resMoney+=res[i];
cout<<resMoney.c_str();
}
void dealMoneyB(string sMoney)
{
if(sMoney=="00"){
cout<<"整";
return ;
}
if(sMoney.length()>0 && sMoney[0]!='0')
cout<<numMap[sMoney[0]].c_str()<<"角";
if(sMoney.length()>1 && sMoney[1]!='0')
cout<<numMap[sMoney[1]].c_str()<<"分";
}
int main(int argc,char* argv[])
{
init();
string input;
while(cin>>input)
{
int npos=input.find(".");
string MoneyA=input;//整数部分
string MoneyB="00";//浮点型部分
if(npos!=-1)
{
MoneyA=input.substr(0,npos);
MoneyB=input.substr(npos+1);
}
cout<<"人民币";
dealMoneyA(MoneyA);
dealMoneyB(MoneyB);
cout<<endl;
}
return 0;
}