有趣的FizzBuzz问题

写一个程序打印1到100这些数字。但是遇到数字为3的倍数的时候,打印“Fizz”替代数字,5的倍数用“Buzz”代替,既是3的倍数又是5的倍数打印“FizzBuzz”。

很简单的题目,很多种解法,我选择了其中一种每个分支都经过两次判断的写法:

public class Fizzbuzz {
    public static void main(String[] args) {
        for (int i = 1; i <= 100; i++) {
            if (i % 3 == 0) {
                if (i % 5 == 0) {
                    System.out.println(i+":"+"fizzbuzz");
                } else {
                    System.out.println(i+":"+ "fizz");
                }
            } else if (i % 5 == 0) {
                System.out.println(i+":"+"buzz");
            } else {
                System.out.println(i);
            }
        }
    }

当然也有1-3次判断的写法,那么这个问题为什么会比较有名呢?

应当是考虑到一个人最基本的逻辑思维能力,比如边界,公倍数的判断等等。我在写的时候,第一次手滑写成了i<100,然后又发现只输出了满足替换的数字,却没有输出普通的数字(最后一个else分支)。可想而知,看似简单的题目也是麻雀虽小五脏俱全。Talk is cheap, show me the code.

谨记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值