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

     最近在CSDN上看到一道题,据说淘汰了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("#");
            }
            
        }

    }

}

 

最后输出的结果如下:

*#**#**#*#**#**#*#**#**#*#**#**#*#**#**#*#**#**#*#**#

posted on 2014-04-26 19:03  银河使者  阅读(5890)  评论(43编辑  收藏  举报

导航