返回
用你自己的语言优雅地解决 Fizz Buzz 问题
见解分享
2023-09-22 01:49:55
在编程世界中,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 问题是一个很好的起点,可以深入了解编程的基本概念。通过解决这个问题,程序员可以磨练他们的逻辑思维能力、条件判断和字符串操作技能。