关于FizzBuzz问题

来源:互联网 发布:修改图片尺寸的软件 编辑:程序博客网 时间:2024/06/14 07:51
        最近,在一些论坛看了一些面试题目,其中有一道题是用java代码实现FizzBuzz问题。FizzBuzz是什么东东呢?。。。先找下度娘吧,看看什么是FizzBuzz。原来FizzBuzz是借鉴一个英国学校里小孩子经常玩的游戏。改编后的题目大概是这样的 “编写程序把1-100的数字打印出来。不过,要把3的倍数打成"Fizz",把5的倍数打成"Buzz"。而如果一个数既是3的倍数。又是5的倍数时,就打成"Fizz-Buzz",其余的输出数字。然后在论坛看见这道编程题很多计算级系的高材生(博士、硕士之类的)都不能现场写出来,更有多年经验自称高级开发程序员在几分钟内也写不出来。。。(这尴尬),不过既然说到这了,那就先打开Eclipse来考验下自己,最后我是通过两种方式来实现的:

第一种:利用循环和条件判断,过滤满足特定条件的数字,然后输出结果,代码如下:

for (int i = 1; i <= 100; i++) {    if (i%3==0) {        if(i%5==0){         System.out.println("FizzBuzz"+i);         continue;    }else {         System.out.println("Fizz"+i);         continue;    }    }else if(i%5==0){    System.out.println("Buzz"+i);    continue;    }else {    System.err.println(i);    continue;   }}

 这段代码中,符合即是3的倍数又是5的倍数这一条件,也可以用3和5的最小公倍数15来实现,具体代码就不贴出来了。

运行结果为:

第二种:是用三元运算符来实现,代码如下:

    String result = null;    for (int i = 1; i <= 100; i++) {   result = i%3==0?(i%5==0? result="FizzBuzz"+i:"Fizz"+i):(i%5==0?"Buzz"+i:i).toString();   System.out.println(result);    }

运行结果为:

好了,以上就是对FizzBuzz的两种解法。

 

0 0
原创粉丝点击