手记

一道淘汰85%面试者的百度开发者面试题

    最近在网上上看到一道题,据说淘汰了85%的面试者(只是据说而已)。心血来潮,随便写个算法,该算法很简单,主要就是考察应聘者是否注重细节。题干如下:

    依序遍历0到100闭区间内所有的正整数,如果该数字能被3整除,则输出该数字及‘*’标记;如果该数字能被5整除,则输出该数字及‘#’标记;如果该数字既能被3整除又能被5整除,则输出该数字及‘*#’标记。

    该题主要考察了如下几点。

    1.  正整数。不知这题怎么出了,这是数学的概念。看到有很多答案从0开始扫描,0是整数,非正非负,应该从1、2或3开始扫描都可以。

    2.  题目给出了3个条件,应该先考虑条件苛刻的,也就是同时被3和5整除的,然后再考虑被3或被5整除的。

    3.  闭区间(这TM的玩文字游戏呢!)。所以不能用for(int i = 0; i < 100;i++)。有很多家伙习惯了,条件都是用“<”。

    下面是题目的答案。

public class SF
{
    public static void main(String[] args)
    {        for(int i = 1; i<= 100; i++)
        {            if(i % 3 == 0 && i % 5 ==0)
            {
                System.out.print("*#");
            }            else if(i % 3 == 0)
            {
                System.out.print("*");
            }            else if(i % 5 == 0)
            {
                System.out.print("#");
            }
            
        }

    }

}
5人推荐
随时随地看视频
慕课网APP

热门评论

答案也没输出该数字啊

大公司现在都这么无聊了吗

第一个判断条件可以不要吧,在循环最后加个换行就行了。

查看全部评论