数字转英文

简介: /* 789 - seven hundred and eighty nine */ /*思路:这人题思路很简单但是用c++程序实现起来比较繁琐,看了答案才知道 可以把 switch(){case}可以改成数组。
/* 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++
【C++STL基础入门】list基本使用
【C++STL基础入门】list基本使用
404 0
|
3天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
278 116
|
18天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
6天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
391 38
Meta SAM3开源:让图像分割,听懂你的话
|
13天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
669 220
|
1天前
|
Windows
dll错误修复 ,可指定下载dll,regsvr32等
dll错误修复 ,可指定下载dll,regsvr32等
129 95
|
11天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1633 157