给定一个32为有符号整数(int类型),输出符合汉语习惯的读法,如10086 读作“一万零八十六”。

 1 #include<iostream>
 2 #include<string>
 3 #include<math.h>
 4 using namespace std;
 5 int main()
 6 {
 7     string dw[]={"","","","","","","","","亿",""};
 8     string sz[]={"","","","","","","","","",""};    
 9     string bc[20];
10     int n,i=0,j;
11     bool flag =false;
12     cin>>n;      // 432   
13     if(n<0)
14         cout<<"";
15     n=abs(n);
16     while(n)
17     {
18         bc[i]=sz[n%10];
19         n/=10;
20         i++;
21     }
22     j=i-1;
23     for(--i;i>0;i--)
24     {
25         flag =false;
26         while(i>0&&(bc[i]==""&&bc[i-1]=="") )
27         {    
28             i--;                
29             if(dw[j]==""||dw[j]=="亿")
30              cout<<dw[j];
31             j--;
32             flag=true;
33         }
34         if(i!=0)
35           cout<<bc[i];
36         if(flag!=true&&bc[i]!="")
37           cout<<dw[j];
38         j--;
39     }
40     if(bc[0]!="")
41         cout<<bc[0];    
42     cout<<endl;
43     return 0;
44 }