学英语

来源:互联网 发布:阿里云飞天分布式系统 编辑:程序博客网 时间:2024/04/30 14:47

  1. #include <iostream>  
  2. #include <string>  
  3. using namespace std;  
  4. string NUmberToEnglishString(long int number)  
  5. {  
  6.     string s;  
  7.     if(number<0)  
  8.     {  
  9.         s="error";  
  10.         return s;  
  11.     }  
  12.     if(number<20)  
  13.     {  
  14.         switch (number)  
  15.         {  
  16.         case 0:  
  17.             s="zero";  
  18.             return s;  
  19.         case 1:  
  20.             s="one";  
  21.             return s;  
  22.         case 2:  
  23.             s="two";  
  24.             return s;  
  25.         case 3:  
  26.             s="three";  
  27.             return s;  
  28.         case 4:  
  29.             s="four";  
  30.             return s;  
  31.         case 5:  
  32.             s="five";  
  33.             return s;  
  34.         case 6:  
  35.             s="six";  
  36.             return s;  
  37.         case 7:  
  38.             s="seven";  
  39.             return s;  
  40.         case 8:  
  41.             s="eight";  
  42.             return s;  
  43.         case 9:  
  44.             s="nine";  
  45.             return s;  
  46.         case 10:  
  47.             s="ten";  
  48.             return s;  
  49.         case 11:  
  50.             s="eleven";  
  51.             return s;  
  52.         case 12:  
  53.             s="twelve";  
  54.             return s;  
  55.         case 13:  
  56.             s="thirteen";  
  57.             return s;  
  58.         case 14:  
  59.             s="fourteen";  
  60.             return s;  
  61.         case 15:  
  62.             s="fifteen";  
  63.             return s;  
  64.         case 16:  
  65.             s="sixteen";  
  66.             return s;  
  67.         case 17:  
  68.             s="seventeen";  
  69.             return s;  
  70.         case 18:  
  71.             s="eighteen";  
  72.             return s;  
  73.         case 19:  
  74.             s="nineteen";  
  75.             return s;  
  76.         default:  
  77.             s="error";  
  78.             return s;  
  79.         }  
  80.     }  
  81.     if(number<100)   //21-99  
  82.     {  
  83.         if (number % 10 == 0) //20,30,40,...90的输出  
  84.         {  
  85.             switch (number)  
  86.             {  
  87.             case 20:  
  88.                 s="twenty";  
  89.                 return s;  
  90.             case 30:  
  91.                 s="thirty";  
  92.                 return s;  
  93.             case 40:  
  94.                 s="forty";  
  95.                 return s;  
  96.             case 50:  
  97.                 s="fifty";  
  98.                 return s;  
  99.             case 60:  
  100.                 s="sixty";  
  101.                 return s;  
  102.             case 70:  
  103.                 s="seventy";  
  104.                 return s;  
  105.             case 80:  
  106.                 s="eighty";  
  107.                 return s;  
  108.             case 90:  
  109.                 s="ninety";  
  110.                 return s;  
  111.             default:  
  112.                 s="error";  
  113.                 return s;  
  114.             }  
  115.         }  
  116.         else  
  117.         {  
  118.             s=NUmberToEnglishString(number/10*10)+' '+NUmberToEnglishString(number%10);  
  119.             return s;  
  120.         }  
  121.   
  122.     }  
  123.     if(number<1000)  //100-999  
  124.     {  
  125.         if(number%100==0)  
  126.         {  
  127.             s=NUmberToEnglishString(number/100)+" hundred";  
  128.             return s;  
  129.         }  
  130.         else  
  131.         {  
  132.             s=NUmberToEnglishString(number/100)+" hundred and "+NUmberToEnglishString(number%100);  
  133.             return s;  
  134.         }  
  135.     }  
  136.     if(number<1000000)  //1000-999999   百万以下  
  137.     {  
  138.         if(number%1000==0)  
  139.         {  
  140.             s=NUmberToEnglishString(number/1000)+" thousand";  
  141.             return s;  
  142.         }  
  143.         else  
  144.         {  
  145.             s=NUmberToEnglishString(number/1000)+" thousand "+NUmberToEnglishString(number%1000);  
  146.             return s;  
  147.         }  
  148.     }  
  149.     if(number<1000000000)   //十亿以下  
  150.     {  
  151.         if(number%1000000==0)  
  152.         {  
  153.             s=NUmberToEnglishString(number/1000000)+" million";  
  154.             return s;  
  155.         }  
  156.         else  
  157.         {  
  158.             s=NUmberToEnglishString(number/1000000)+" million "+NUmberToEnglishString(number%1000000);  
  159.             return s;  
  160.         }  
  161.     }  
  162.     if (number<9999999999)  //十亿到99亿  
  163.     {  
  164.         if(number%1000000000==0)  
  165.         {  
  166.             s=NUmberToEnglishString(number/1000000000)+" billion";  
  167.             return s;  
  168.         }  
  169.         else  
  170.         {  
  171.             s=NUmberToEnglishString(number/1000000000)+" billion "+NUmberToEnglishString(number%1000000000);  
  172.             return s;  
  173.         }  
  174.     }  
  175.     if (number>9999999999)  
  176.     {  
  177.         s="error";  
  178.         return s;  
  179.     }  
  180.   
  181. }  
  182. int main()  
  183. {  
  184.     long int a;  
  185.     cin>>a;  
  186.     cout<<NUmberToEnglishString(a)<<endl;  
  187.   
  188. }  
  189. 这道题就是一道神经病题。。。。。。欺负英语不好的人。。。。。只能在百位与十位之间加and。。。
0 0
原创粉丝点击