《Cracking the Coding Interview》——第17章:普通题——题目7
2014-04-28 23:28
题目:给定一个数字,用英语把它读出来。
解法:ZOJ上有相反的题目。如果我要用中文读书来呢?
代码:
// 17.7 Read an integer in English.
#include <map>
#include <string>
using namespace std; map<int, string> m; void init()
{
m[] = "zero";
m[] = "one";
m[] = "two";
m[] = "three";
m[] = "four";
m[] = "five";
m[] = "six";
m[] = "seven";
m[] = "eight";
m[] = "nine";
m[] = "ten";
m[] = "eleven";
m[] = "twelve";
m[] = "thirteen";
m[] = "fourteen";
m[] = "fifteen";
m[] = "sixteen";
m[] = "seventeen";
m[] = "eighteen";
m[] = "nineteen";
m[] = "twenty";
m[] = "thirty";
m[] = "forty";
m[] = "fifty";
m[] = "sixty";
m[] = "seventy";
m[] = "eighty";
m[] = "ninety";
int i, j;
for (i = ; i <= ; ++i) {
for (j = ; j <= ; ++j) {
m[i * + j] = m[i * ] + "-" + m[j];
}
}
} void readNumber(int n)
{
if (n == ) {
return;
}
// here n is limited between [0, 999];
int a, b, c; a = n / ;
b = n % / ;
c = n % / ; if (a > ) {
printf("%s hundred ", m[a].c_str());
if (b != || c != ) {
printf("and ");
}
}
if (b * + c > ) {
printf("%s ", m[b * + c].c_str());
}
} int main()
{
init();
int n, n0; while (scanf("%d", &n) == ) {
if (n == ) {
printf("zero \n");
continue;
}
if (n < ) {
printf("minus ");
n = -n;
}
n0 = n;
if (n >= ) {
readNumber(n / );
printf("billion ");
n = n % ;
}
if (n >= ) {
readNumber(n / );
n = n % ;
printf("million ");
}
if (n >= ) {
readNumber(n / );
n = n % ;
printf("thousand ");
}
if (n0 >= && n / == ) {
printf("and ");
}
readNumber(n);
putchar('\n');
} return ;
}
《Cracking the Coding Interview》——第17章:普通题——题目7的更多相关文章
- Cracking the coding interview 第一章问题及解答
Cracking the coding interview 第一章问题及解答 不管是不是要挪地方,面试题具有很好的联系代码总用,参加新工作的半年里,做的大多是探索性的工作,反而代码写得少了,不高兴,最 ...
- 《Cracking the Coding Interview》读书笔记
<Cracking the Coding Interview>是适合硅谷技术面试的一本面试指南,因为题目分类清晰,风格比较靠谱,所以广受推崇. 以下是我的读书笔记,基本都是每章的课后习题解 ...
- Cracking the coding interview
写在开头 最近忙于论文的开题等工作,还有阿里的实习笔试,被虐的还行,说还行是因为自己的水平或者说是自己准备的还没有达到他们所需要人才的水平,所以就想找一本面试的书<Cracking the co ...
- Cracking the coding interview目录及资料收集
前言 <Cracking the coding interview>是一本被许多人极力推荐的程序员面试书籍, 详情可见:http://www.careercup.com/book. 第六版 ...
- Cracking the Coding Interview(Trees and Graphs)
Cracking the Coding Interview(Trees and Graphs) 树和图的训练平时相对很少,还是要加强训练一些树和图的基础算法.自己对树节点的设计应该不是很合理,多多少少 ...
- Cracking the Coding Interview(Stacks and Queues)
Cracking the Coding Interview(Stacks and Queues) 1.Describe how you could use a single array to impl ...
- 《Cracking the Coding Interview》——第18章:难题——题目13
2014-04-29 04:40 题目:给定一个字母组成的矩阵,和一个包含一堆单词的词典.请从矩阵中找出一个最大的子矩阵,使得从左到右每一行,从上到下每一列组成的单词都包含在词典中. 解法:O(n^3 ...
- 二刷Cracking the Coding Interview(CC150第五版)
第18章---高度难题 1,-------另类加法.实现加法. 另类加法 参与人数:327时间限制:3秒空间限制:32768K 算法知识视频讲解 题目描述 请编写一个函数,将两个数字相加.不得使用+或 ...
- 《Cracking the Coding Interview》——第17章:普通题——题目14
2014-04-29 00:20 题目:给定一个长字符串,和一个词典.如果允许你将长串分割成若干个片段,可能会存在某些片段在词典里查不到,有些则查得到.请设计算法进行分词,使得查不到的片段个数最少. ...
- 《Cracking the Coding Interview》——第17章:普通题——题目13
2014-04-29 00:15 题目:将二叉搜索树展开成一个双向链表,要求这个链表仍是有序的,而且不能另外分配对象,就地完成. 解法:Leetcode上也有,递归解法. 代码: // 17.13 F ...
随机推荐
- SAP UI5和CRM WebUI的View和Controller是如何绑定的
UI5 例如我在UI5的界面上画一个按钮,点击之后弹出一个Alert dialog. 在XML view里只定义了controller的名称和事件处理函数的名称.那么按钮被点击之后,controlle ...
- SAP S4CRM和C4C的技术比较
如果您对SAP S/4HANA for Customer Management(以下简称S4CRM)和SAP Cloud for Customer(以下简称C4C)不甚熟悉,那我建议您可以先浏览我之前 ...
- css样式设置高度不定文本垂直居中
使用css实现文本垂直居中,对于支持display: table的浏览器来说,是比较容易实现的,只需要对外层div设置为table,内层div设置为table-cell,并设置文本垂直居中即可.但对于 ...
- 使用taobao cnpm 源解决npm无法安装module问题
npm 安装nativescript时出现异常,一直停着不动.应该是源被墙了的问题可以使用淘宝仓库,执行下面的命令: alias cnpm="npm --registry=https://r ...
- ID3和C4.5、CART
CART连续属性参考C4.5的离散化过程,区别在于CART算法中要以GiniGain最小作为分界点选取标准.是否需要修正?处理过程为: 先把连续属性转换为离散属性再进行处理.虽然本质上属性的取值是连续 ...
- Laravel 5 : Call to undefined function Illuminate\Foundation\Bootstrap\mb_internal_encoding()
自己组装的apache,php,mysql phpinfo显示 OpenSSL support disabled (install ext/openssl) 判断为权限问题,所以修改如下. 1 ...
- Linux笔记(开机自动将kerne log保存到SD卡中)
有时候为了测试机器的稳定性,需要煲机测试几天的情况,这个时候机器已经封装好,不能再接串口线出来. 为了追溯问题,就需要将log信息保存下来. 于是就需要这样一个功能:系统启动后,自动将kernel的l ...
- 使用C#的新特性:可空类型
随着C#语言最新标准的出炉,现在它也提供了对可空类型的支持.这个小变化将会在处理那些包括可选项的数据库记录时非常有用.当然在其他地方,它也是非常有用的. 简单说来,可空数据类型就是包含了所定义的数据类 ...
- git 学习笔记 window操作系统
一.准备工作 1.设置好操作者和邮箱 $ git config --global user.name "Your Name" $ git config --global user. ...
- 通过tomcat配置访问本机资源
背景:在最近的项目中使用海康威视的摄像机,在项目预算中没有购买对应的硬盘录像机,但是由于客户需要能够进行视频的回放功能,所以直接采用了海康提供的视频管理客户端直接进行视频录像,然后保存在本机进行播放. ...