论坛首页 招聘求职论坛

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

浏览 18956 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2009-09-09   最后修改:2009-09-09
sxyx2008 写道
bcccs 写道
sxyx2008 写道
今天去网易面试了
其中有这么一道题很郁闷
没答出来
原题是这样的
要求用户从键盘上输入一个数字,数字范围是(9位数以内)
要求输出正确的英文单词来
如:
用户输入:
1,返回:one


啊?刁难?哪里刁难 了?

请留下你的见解

0 请登录后投票
   发表时间:2009-09-09  
下一站,火星 写道
楼上的哥哥

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

如:
用户输入:
1,返回:one

你到底想怎样

哈哈  火星兄很无奈的说
0 请登录后投票
   发表时间:2009-09-09  
首先,英文单词是3位3位来的。分别是million, thousand和啥都没有的后缀。

然后问题就变成解析一个三位数的问题了,譬如,123翻译成英文。

这就简单了,%100, %10, %1,得出的值,对应到3个数组里面去。。。


面试题嘛,就这样说行了,不用给代码了吧?这很简单阿。。。
0 请登录后投票
   发表时间:2009-09-09  

搞个计数器判断下就可以了,和汉字按首字母排序差不多的问题
0 请登录后投票
   发表时间:2009-09-09   最后修改:2009-09-09
101/1001这样的也是要考虑的吧
0 请登录后投票
   发表时间:2009-09-09  
sxyx2008 写道
今天去网易面试了
其中有这么一道题很郁闷
没答出来
原题是这样的
要求用户从键盘上输入一个数字,数字范围是(9位数以内)
要求输出正确的英文单词来
如:
用户输入:
1,返回:one


这道题很简单,如果这也不会的话,转行做QA吧,真的。。。
0 请登录后投票
   发表时间:2009-09-09  
bcccs 写道
101/1001这样的也是要考虑的吧


是关于我给的那个算法
引用
首先,英文单词是3位3位来的。分别是million, thousand和啥都没有的后缀。

然后问题就变成解析一个三位数的问题了,譬如,123翻译成英文。

这就简单了,%100, %10, %1,得出的值,对应到3个数组里面去。。。


面试题嘛,就这样说行了,不用给代码了吧?这很简单阿。。。

的问题吗?

这种情况已经考虑进来的阿。

1001-〉分成2档,1 -> thousand, 001 -> 啥都没有

1/100 = 0, ["","one hundred and ", "two hundred and ", "three hundred and "..."nine hundred and "]

(1-0*100)/10 = 0, ["", "ninty" ...]

(1-0*100-1*10)/1 = 1 ["", "nine"...]

那个%100,%10,%1是指那个经典的算法,学校里面求每位是几那个。
0 请登录后投票
   发表时间:2009-09-09  
想问网易是否诚心招人啊?
0 请登录后投票
   发表时间:2009-09-09  
下一站,火星 写道

搞个计数器判断下就可以了,和汉字按首字母排序差不多的问题



越来越不理解了....

如果那么简单,请把代码帖出来吧
0 请登录后投票
   发表时间:2009-09-10   最后修改:2009-09-10
面试题嘛,转个别人写的
package name.zrl;    
   
public class ListTest {    
    static String[] to_19 = { "zero", "one", "two", "three", "four", "five",    
            "six", "seven", "eight", "nine", "ten", "eleven", "twelve",    
            "thirteen", "fourteen", "fifteen", "sixteen", "seventeen",    
            "eighteen", "nineteen" };    
    static String[] tens = { "twenty", "thirty", "forty", "fifty", "sixty",    
            "seventy", "eighty", "ninety" };    
    static String[] denom = { "", "thousand ", "million", "billion",    
            "trillion", "quadrillion", "quintillion", "sextillion",    
            "septillion", "octillion", "nonillion", "decillion", "undecillion",    
            "duodecillion", "tredecillion", "quattuordecillion",    
            "sexdecillion", "septendecillion", "octodecillion",    
            "novemdecillion", "vigintillion" };    
   
    public static void main(String[] argv) throws Exception {    
        long tstValue = 1234567890987654321L;    
        ListTest itoe = new ListTest();    
        System.out.println(itoe.english_number(tstValue));    
    }    
   
    private String convert_nn(int val) {    
        if (val < 20)    
            return to_19[val];    
   
        int flag = val / 10 - 2;    
        if (val % 10 != 0)    
            return tens[flag] + "-" + to_19[val % 10];    
        else   
            return tens[flag];    
    }    
   
    private String convert_nnn(int val) {    
        String word = "";    
        int rem = val / 100;    
        int mod = val % 100;    
        if (rem > 0) {    
            word = to_19[rem] + " hundred ";    
   
        }    
        if (mod > 0) {    
            word = word + convert_nn(mod);    
        }    
        return word;    
    }    
   
    public String english_number(long val) {    
   
        if (val < 100) {    
            System.out.println((int) val);    
            return convert_nn((int) val);    
        }    
        if (val < 1000) {    
            return convert_nnn((int) val);    
        }    
   
        for (int v = 0; v < denom.length; v++) {    
   
            int didx = v - 1;    
            long dval = new Double(Math.pow(1000, v)).longValue();    
   
            if (dval > val) {    
                long mod = new Double(Math.pow(1000, didx)).longValue();    
                int l = (int) (val / mod);    
                long r = (long) (val - (l * mod));    
                String ret = convert_nnn(l) + " " + denom[didx];    
                if (r > 0) {    
                    ret = ret + ", " + english_number(r);    
                }    
   
                return ret;    
            }    
   
        }    
        return null;    
    }    
   
}    
1 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics