#include<iostream>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
map<char,string> numbMap;
map<int,string> lMoneyMap;
void init()
{
numbMap['0']="零";
numbMap['1']="壹";
numbMap['2']="贰";
numbMap['3']="叁";
numbMap['4']="肆";
numbMap['5']="伍";
numbMap['6']="陆";
numbMap['7']="柒";
numbMap['8']="捌";
numbMap['9']="玖";
lMoneyMap[0]="";
lMoneyMap[1]="拾";
lMoneyMap[2]="佰";
lMoneyMap[3]="仟";
}
void dealIntMoney(string str)
{
if(strtol(str.c_str(),NULL,10)==0) return ;
vector<string> vec;
reverse(str.begin(), str.end());
int n=0;
for(int i=0;i<str.length();i++)
{
if(i%4==0)//单位
{
if(n==0) vec.push_back("元");
else if(n==1) vec.push_back("万");
else if(n==2) vec.push_back("亿");
else if(n==3) vec.push_back("万");
n++;
}
if(str[i]!='0') vec.push_back(lMoneyMap[i%4]);
vec.push_back(numbMap[str[i]]);
}
string res;
for(int i=vec.size()-1;i>=0;i--)
{
if(vec[i]=="拾")
{
if(vec[i-1]=="零" && vec[i+1]=="壹")
{
vec[i+1]="";
vec[i-1]="";
}else if(vec[i+1]=="壹") vec[i+1]="";
}else if(vec[i]=="零" && vec[i-1]=="零") vec[i-1]="";
}
for(int i=vec.size()-1;i>=0;i--) cout<<vec[i];
}
void dealAfterMoney(string str)
{
if(str=="00") return ;
if(str.length()>0 && str[0]!='0') cout<<numbMap[str[0]]<<"角";
if(str.length()>1 && str[1]!='0') cout<<numbMap[str[1]]<<"分";
cout<<endl;
}
int main(int argc,char* argv[])
{
init();
string value;
while(cin>>value)
{
cout<<"人民币";
int pos=value.find(".");
if(pos==-1 || value.substr(pos+1)=="00"){//只翻译整数
dealIntMoney(value.substr(0,pos));
cout<<"整"<<endl;
}
else {//翻译整数部分和小数部分
dealIntMoney(value.substr(0,pos));
dealAfterMoney(value.substr(pos+1));
}
}
return 0;
}
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
map<char,string> numbMap;
map<int,string> lMoneyMap;
void init()
{
numbMap['0']="零";
numbMap['1']="壹";
numbMap['2']="贰";
numbMap['3']="叁";
numbMap['4']="肆";
numbMap['5']="伍";
numbMap['6']="陆";
numbMap['7']="柒";
numbMap['8']="捌";
numbMap['9']="玖";
lMoneyMap[0]="";
lMoneyMap[1]="拾";
lMoneyMap[2]="佰";
lMoneyMap[3]="仟";
}
void dealIntMoney(string str)
{
if(strtol(str.c_str(),NULL,10)==0) return ;
vector<string> vec;
reverse(str.begin(), str.end());
int n=0;
for(int i=0;i<str.length();i++)
{
if(i%4==0)//单位
{
if(n==0) vec.push_back("元");
else if(n==1) vec.push_back("万");
else if(n==2) vec.push_back("亿");
else if(n==3) vec.push_back("万");
n++;
}
if(str[i]!='0') vec.push_back(lMoneyMap[i%4]);
vec.push_back(numbMap[str[i]]);
}
string res;
for(int i=vec.size()-1;i>=0;i--)
{
if(vec[i]=="拾")
{
if(vec[i-1]=="零" && vec[i+1]=="壹")
{
vec[i+1]="";
vec[i-1]="";
}else if(vec[i+1]=="壹") vec[i+1]="";
}else if(vec[i]=="零" && vec[i-1]=="零") vec[i-1]="";
}
for(int i=vec.size()-1;i>=0;i--) cout<<vec[i];
}
void dealAfterMoney(string str)
{
if(str=="00") return ;
if(str.length()>0 && str[0]!='0') cout<<numbMap[str[0]]<<"角";
if(str.length()>1 && str[1]!='0') cout<<numbMap[str[1]]<<"分";
cout<<endl;
}
int main(int argc,char* argv[])
{
init();
string value;
while(cin>>value)
{
cout<<"人民币";
int pos=value.find(".");
if(pos==-1 || value.substr(pos+1)=="00"){//只翻译整数
dealIntMoney(value.substr(0,pos));
cout<<"整"<<endl;
}
else {//翻译整数部分和小数部分
dealIntMoney(value.substr(0,pos));
dealAfterMoney(value.substr(pos+1));
}
}
return 0;
}