数字转英文
/* 789 - seven hundred and eighty nine */
/*思路:这人题思路很简单但是用c++程序实现起来比较繁琐,看了答案才知道 可以把 switch(){case}可以改成数组。哎。效率就是不行呀~!
如 char *a[]={"","one","two".........}*/
#include <iostream>
#include <string>
using namespace std;
char *Num_to_en(int num)
{
switch(num)
{
case 1:return "one";
break;
case 2:return "tow";
break;
case 3:return "three";
break;
case 4:return "four";
break;
case 5:return "five";
break;
case 6:return "six";
break;
case 7: return "seven";
break;
case 8:return "eight";
break;
case 9:return "nine";
break;
default:
cout<<"error"<<endl;
break;
}
}
char *ShiWei(int num)
{
if(num<=20)
{
switch(num)
{
case 10:return "ten";
break;
case 11:return "elven";
break;
case 12:return "twelve";
break;
case 13:return "thirteen";
break;
case 14:return "fourteen";
break;
case 15:return "fifteen";
break;
case 16: return "sixteen";
break;
case 17:return "seventeen";
break;
case 18:return "eighteen";
break;
case 19:return "nineteen";
break;
case 20:return "twenty";
break;
}
}
else
{
int s=num/10;
int g=num%10;
switch(s)
{
case 2:return "twenty";
break;
case 3:return "thirty";
break;
case 4:return "forty";
break;
case 5:return "fifty";
break;
case 6:return "sixty";
break;
case 7:return "seventy";
break;
case 8:return "eighty";
break;
case 9:return "ninety";
break;
case 0:return " ";
}
}
}
int main()
{
cout<<"请输入一个三位整数"<<endl;
int a1;
cin>>a1;
int bw=a1/100;
int sw=a1%100;
int sw1=a1%100/10;
int gw=a1%10;
if (sw1==0&&gw!=0) cout<<Num_to_en(bw)<<" hundred and "<<Num_to_en(gw)<<endl;
else
if(sw==0&&gw==0) cout<<Num_to_en(bw)<<" hundred"<<endl;
else
if(sw<21)cout<<Num_to_en(bw)<<" hundred and "<<ShiWei(sw)<<endl;
else cout<<Num_to_en(bw)<<" hundred and "<<ShiWei(sw)<<" "<<Num_to_en(gw)<<endl;
return 0;
}
本文章转载请务必注明出处或保存此段。c++/lua/windows逆向交流群:69148232

浙公网安备 33010602011771号