返回

用你自己的语言优雅地解决 Fizz Buzz 问题

见解分享

在编程世界中,Fizz Buzz 是一个经典的算法问题,旨在测试初学者的编程技能。它要求程序员编写一段代码,遍历数字列表并根据数字是否是 3 或 5 的倍数来打印 "Fizz"、"Buzz" 或数字本身。

乍看之下,Fizz Buzz 问题可能很简单,但它为初学者提供了探索各种编程概念的机会,例如条件语句、循环和字符串操作。解决这个问题的优雅方式有很多,这里列出一些最常见的:

使用条件语句:

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

使用 switch 语句:

for (int i = 1; i <= 100; i++) {
  switch (i % 15) {
    case 0:
      System.out.println("FizzBuzz");
      break;
    case 3:
    case 6:
    case 9:
    case 12:
      System.out.println("Fizz");
      break;
    case 5:
    case 10:
      System.out.println("Buzz");
      break;
    default:
      System.out.println(i);
      break;
  }
}

使用流式 API(仅适用于 Java 8+):

IntStream.range(1, 101).forEach(i -> {
  String result = "";
  if (i % 3 == 0) {
    result += "Fizz";
  }
  if (i % 5 == 0) {
    result += "Buzz";
  }
  System.out.println(result.isEmpty() ? i : result);
});

选择哪种方法取决于程序员的喜好和编程语言。每种方法都有其自身的优点和缺点,关键是选择一种最适合手头任务的方法。

Fizz Buzz 问题是一个很好的起点,可以深入了解编程的基本概念。通过解决这个问题,程序员可以磨练他们的逻辑思维能力、条件判断和字符串操作技能。