关于FizzBuzz问题

        最近,在一些论坛看了一些面试题目,其中有一道题是用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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值