博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
某山面试 3、实现如下函数:
阅读量:2500 次
发布时间:2019-05-11

本文共 994 字,大约阅读时间需要 3 分钟。

3、实现如下函数:

void printInChinese(int num);

这个函数输入一个小于100000000(一亿)的正整数,并在屏幕上打印这个数字的中文写法。

例如:

17 -> 一十七

120 -> 一百二十

201 -> 二百零一

1074 -> 一千零七十四

65536 -> 六万五千五百三十六

1010101 -> 一百零一万零一百零一

提示:请注意‘零’的处理。

扩展:如果需要处理通用简化习惯,你将怎么处理,例如:

17 -> 十七

120 -> 一百二

#include 
using namespace std;string wo[10] = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};string da[5] = {"", "十", "百", "千", "万"};int ma[1000];void convey(string &str, int num, bool m){ int z=0, x = num; for(int i = 1000; i > 0; i/=10){ if(x>=i){ if(z && m) str += wo[0]; str+=wo[x/i]; str+=da[ma[i]]; x%=i; m = 1; z = 0; }else z = 1; }}void printInChinese(int num){ string str; int m = 0; ma[1000] = 3, ma[100] = 2, ma[10] = 1, ma[1] = 0; if(num>=10000) { convey(str, num/10000, 0); str+=da[4]; m = 1; } if(num>0){ convey(str, num%10000, m); } if(num==0) str+=wo[0]; cout<
<

转载地址:http://ebhrb.baihongyu.com/

你可能感兴趣的文章
阻塞队列
查看>>
linux的基础知识
查看>>
接口技术原理
查看>>
五大串口的基本原理
查看>>
PCB设计技巧与注意事项
查看>>
linux进程之间通讯常用信号
查看>>
main函数带参数
查看>>
PCB布线技巧
查看>>
关于PCB设计中过孔能否打在焊盘上的两种观点
查看>>
PCB反推理念
查看>>
京东技术架构(一)构建亿级前端读服务
查看>>
php 解决json_encode中文UNICODE转码问题
查看>>
LNMP 安装 thinkcmf提示404not found
查看>>
PHP empty、isset、innull的区别
查看>>
apache+nginx 实现动静分离
查看>>
通过Navicat远程连接MySQL配置
查看>>
phpstorm开发工具的设置用法
查看>>
Linux 系统挂载数据盘
查看>>
Git基础(三)--常见错误及解决方案
查看>>
Git(四) - 分支管理
查看>>