【华为oj】学英语o(>﹏<)o

问题描述:


代码:

#include <iostream>
#include <string>
using namespace std;
string NUmberToEnglishString(long int number)
{
	string s;
	if(number<0)
	{
		s="error";
		return s;
	}
	if(number<20)
	{
		switch (number)
		{
		case 0:
			s="zero";
			return s;
		case 1:
			s="one";
			return s;
		case 2:
			s="two";
			return s;
		case 3:
			s="three";
			return s;
		case 4:
			s="four";
			return s;
		case 5:
			s="five";
			return s;
		case 6:
			s="six";
			return s;
		case 7:
			s="seven";
			return s;
		case 8:
			s="eight";
			return s;
		case 9:
			s="nine";
			return s;
		case 10:
			s="ten";
			return s;
		case 11:
			s="eleven";
			return s;
		case 12:
			s="twelve";
			return s;
		case 13:
			s="thirteen";
			return s;
		case 14:
			s="fourteen";
			return s;
		case 15:
			s="fifteen";
			return s;
		case 16:
			s="sixteen";
			return s;
		case 17:
			s="seventeen";
			return s;
		case 18:
			s="eighteen";
			return s;
		case 19:
			s="nineteen";
			return s;
		default:
			s="error";
			return s;
		}
	}
	if(number<100)   //21-99
	{
		if (number % 10 == 0) //20,30,40,...90的输出
		{
			switch (number)
			{
			case 20:
				s="twenty";
				return s;
			case 30:
				s="thirty";
				return s;
			case 40:
				s="forty";
				return s;
			case 50:
				s="fifty";
				return s;
			case 60:
				s="sixty";
				return s;
			case 70:
				s="seventy";
				return s;
			case 80:
				s="eighty";
				return s;
			case 90:
				s="ninety";
				return s;
			default:
				s="error";
				return s;
			}
		}
		else
		{
			s=NUmberToEnglishString(number/10*10)+' '+NUmberToEnglishString(number%10);
			return s;
		}

	}
	if(number<1000)  //100-999
	{
		if(number%100==0)
		{
			s=NUmberToEnglishString(number/100)+" hundred";
			return s;
		}
		else
		{
			s=NUmberToEnglishString(number/100)+" hundred and "+NUmberToEnglishString(number%100);
			return s;
		}
	}
	if(number<1000000)  //1000-999999   百万以下
	{
		if(number%1000==0)
		{
			s=NUmberToEnglishString(number/1000)+" thousand";
			return s;
		}
		else
		{
			s=NUmberToEnglishString(number/1000)+" thousand "+NUmberToEnglishString(number%1000);
			return s;
		}
	}
	if(number<1000000000)   //十亿以下
	{
		if(number%1000000==0)
		{
			s=NUmberToEnglishString(number/1000000)+" million";
			return s;
		}
		else
		{
			s=NUmberToEnglishString(number/1000000)+" million "+NUmberToEnglishString(number%1000000);
			return s;
		}
	}
	if (number<9999999999)  //十亿到99亿
	{
		if(number%1000000000==0)
		{
			s=NUmberToEnglishString(number/1000000000)+" billion";
			return s;
		}
		else
		{
			s=NUmberToEnglishString(number/1000000000)+" billion "+NUmberToEnglishString(number%1000000000);
			return s;
		}
	}
	if (number>9999999999)
	{
		s="error";
		return s;
	}

}
int main()
{
	long int a;
	cin>>a;
	cout<<NUmberToEnglishString(a)<<endl;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值