测试点0格式错误QAQ,死活找不到,这题格式是真的难搞、、
#include<iostream>
using namespace std;
string num[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
string unit[5]={"Yi","Wan","Shi","Bai","Qian"};
bool flag1 = false;
int main(){
string s;
string calcu(string s);
cin>>s;
if(s=="0"){cout<<num[0]; return 0;}
if(s[0]=='-'){
cout<<"Fu ";
s=s.substr(1,s.length());
}
if(s.length()>8){
cout<<num[s[0]-'0']<<' '<<unit[0];
s=s.substr(1,s.length());
}
if(s.length()>4){
string a=s.substr(0,s.length()-4);
a = calcu(a);
if(a!=""){
a=a.substr(1,a.length());
cout<<a<<' '<<unit[1];
}
string b=s.substr(s.length()-4,s.length());
b = calcu(b);
cout<<b;
}
if(s.length()<=4){
s = calcu(s);
s=s.substr(1,s.length());
cout<<s;
}
}
string calcu(string s){
bool pre = flag1;
string result;
if(s=="0000")
return "";
for(unsigned int i=0;i<s.length();i++){
if(s[i]=='0'){
pre=true;
if(i==s.length()-1) flag1=true;
}else {
if(pre)
result+=' '+num[0];
if(s.length()-i>1){
result+=' '+num[s[i]-'0']+' '+unit[s.length()-i];
}else{
result+=' '+num[s[i]-'0'];
}
pre=false;
}
}
return result;
}