《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 ...
随机推荐
- linux上传、下载文件rz、sz命令
1.介绍 sz命令是利用ZModem协议来从linux服务器传送文件到本地,一次可以传送一个或多个文件.相对应的从本地上传文件到Linux服务器,可以使用rz命令. 2.参数说明 -a,以文本方式传输 ...
- OpenCV视觉库
视频会议软件的视频质量除了与外置设备.编码器相关外,还与视频的后处理技术相关,视频图像通过后处理技术,如图像增强.图像去噪等,图像质量会得到主观上较大的提高.而我们通常的视频后处理技术会采用开源的项目 ...
- 在线文本编辑器cheditor应用实例
CKEditor 即 FCKEDITOR . FCKeditor是眼下最棒的可见就可以得网页编辑器之中的一个,它採用JavaScript编写.具备功能强大.配置easy.跨浏览器.支持多种编程语言.开 ...
- Prim算法求权数和,POJ(1258)
题目链接:http://poj.org/problem?id=1258 解题报告: #include <iostream> #include <stdio.h> #includ ...
- 跑groud truth的disparity
1.用这个初始化cv::Mat M(375,1242,CV_32FC1,0.0); ,就会报以下的错误: malloc(): memory corruption: 0x000000000165df40 ...
- 文本编辑器Vim技巧
1. 导入文件内容 :r 文件名 2. 插入当前日期 :r !date 3. :!which ls 4. :r !命令
- [NVIDIA编程教程]OpenACC: Directives for GPUs
NVIDIA已经在过去五年里大力发展CUDA技术,我们估计CUDA开发人员超过15万,很多重要的科学应用正在CUDA的帮助下完成.但是我们仍然有一个很长的路要走,以帮助每个人从GPU计算中享受到好处. ...
- 在jdbc基础上进阶一小步的C3p0 连接池(DBCP 不能读xml配置文件,已淘汰) 和DBUtils 中两个主要类QueryRunner和ResultSetHandler的使用
首先看C3p0这个连接池,最大优势可以自动读取默认的配置文件 <?xml version="1.0" encoding="UTF-8"?> < ...
- 彻底搞定C指针--“函数名与函数指针”
函数名与函数指针 一 通常的函数调用 一个通常的函数调用的例子: //自行包含头文件 void MyFun(int x); //此处的申明也可写成:void MyFun( int ); 点击打开链 ...
- 千锋教育Vue组件--vue基础的方法
课程地址: https://ke.qq.com/course/251029#term_id=100295989 <!DOCTYPE html> <html> <head& ...