`

网易公司刁难的面试题,留下你的见解

阅读更多

今天去网易面试了
其中有这么一道题很郁闷
没答出来
原题是这样的
要求用户从键盘上输入一个数字,数字范围是(9位数以内)
要求输出正确的英文单词来
如:
用户输入:
1,返回:one

看了很多大家的评论
我想大家还没看清人家出这道题的真正用意
我在解释一下
用户任意从键盘上输入一个数字,要求你用代码实现该数字的汉译英

大家提到了switch,可是你想想数字范围是9位数以内,用户输入的数字是不定的,你怎么取舍,总不能写n个switch吧
还有人说了类似将阿拉伯数字用万千等表示的,这也太easy了吧,网易会考这么低能的题吗
大家不要扯跟这道题目无关的东西好吗

 

转自http://www.iteye.com/topic/465733

分享到:
评论
3 楼 heirenhua 2013-10-03  
我是觉得一个9位的数N = A8*10^8 + A7*10^7 + ... + A1*10^1 + A0*10^0.

然后1~9:one~two
10:ten
100:
1000:
。。。
2 楼 elemark 2010-04-16  
PS. 第一层循环,每一次循环都把int转换的字符串的最后三位删除掉呵呵

总是丢三落四的,太依靠debug了呵呵
1 楼 elemark 2010-04-16  
题目分解:

原题:客户输入9位正整数,提交,程序回应其对应的英文数字

分解为:
1.客户输入信息的接收
这个比较简单,找个int变量,就存起来了呵呵

2.将int变量转换或者翻译成英文
2-1.英文数字表达方式分析
         4 = four
       11 = eleven                        //特殊
       21 = twenty one
       239 = two handroud and thirty nine
    1,239 = one thousand , two handroud and thirty nine
1,123,239 = one million , one handroud and twenty three thousand , two handroud and thirty nine

2-2.得出模型
只要是涉及到11,12,13就特殊处理,除此之外,以三位数为节点,分别用billion,millin,thousand作为节点后的点缀。

2-3.处理过程
取到变量,判定大小,转换成字符串,判定长度
根据长度设定第一层循环
第二层循环:
判定长度,大于3位,取最后3位,转换为三位数的英文表达(调用一个将三位数转为英文表达的函数,函数自己写),得到一个结果,加上millin,billin或者thousand后缀,压入一个结果字符串。
如果长度,小于3位,大于0位,调用函数后跳出所有循环。
第二层函数结束
判定长度,决定是否跳出循环
第一层循环结束。
返回结果字符串

3.显示结果
显示返回字符串

以上就是我的答案了,这个大概是网易要考察面试同学对英语数字表达和循环控制能力吧。我觉得如果作为笔试题目来说的话,挺好的。作为面试题目来说的话,能当场作答的估计很少吧。


相关推荐

Global site tag (gtag.js) - Google Analytics