Java 中的 FizzBu​​zz 解决方案

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(283)   2023-06-26 07:54:18

FizzBu​​zz 是一款主要在小学时玩过的有趣游戏。规则很简单:轮到你时,你说下一个数字。但是,如果该数字是五的倍数,则应改为说“fizz”(最好带有法国口音)。如果数字是七的倍数,你应该说“buzz”。如果是两者的倍数,你应该说“fizzbuzz”。如果你搞砸了,你就出局了,游戏在没有你的情况下继续进行。

请注意,可以使用不同的除数代替或补充 5 和 7,不同的词或手势可以代替“fizz”或“buzz”。 [参考]

让我们学习用java编写一个程序来模拟这个游戏。

在 Java 8 中解决 FizzBu​​zz

最新的 Java 版本为 8,让我们使用 Java 8 构造设计一个解决方案。

IntStream.rangeClosed(1, 100)
	.mapToObj(i -> i % 5 == 0 ? (i % 7 == 0 ? "FizzBuzz" : "Fizz") : (i % 7 == 0 ? "Buzz" : i))
	.forEach(System.out::println);

解决 Java 8 之前的 FizzBu​​zz

如果您仍然没有使用 Java 8,那么这个 fizzbuzz 解决方案使用基本的 for 循环并遍历数字范围并决定打印什么。

for (int i = 1; i <= num; i++) 
{
	if (((i % 5) == 0) && ((i % 7) == 0)) // Is it a multiple of 5 & 7?
		System.out.println("fizzbuzz");
	else if ((i % 5) == 0) // Is it a multiple of 5?
		System.out.println("fizz");
	else if ((i % 7) == 0) // Is it a multiple of 7?
		System.out.println("buzz");
	else
		System.out.println(i); // Not a multiple of 5 or 7
}

完整的 FizzBu​​zz 示例代码

这两种解决方案都足够简单且不言自明。下面给出了 fizzbuzz 的工作示例源代码。随意修改和使用代码。

import java.util.stream.IntStream;

public class FizzBuzz 
{
	public static void main(String[] args) 
	{
		fizzBuzzBeforeJava8(100);
		fizzBuzzInJava8(100);
	}

	private static void fizzBuzzBeforeJava8(int num) 
	{
		for (int i = 1; i <= num; i++) 
		{
			if (((i % 5) == 0) && ((i % 7) == 0)) // Is it a multiple of 5 & 7?
				System.out.println("fizzbuzz");
			else if ((i % 5) == 0) // Is it a multiple of 5?
				System.out.println("fizz");
			else if ((i % 7) == 0) // Is it a multiple of 7?
				System.out.println("buzz");
			else
				System.out.println(i); // Not a multiple of 5 or 7
		}
	}

	private static void fizzBuzzInJava8(int num) {
		IntStream.rangeClosed(1, 100)
				.mapToObj(i -> i % 5 == 0 ? (i % 7 == 0 ? "FizzBuzz" : "Fizz") : (i % 7 == 0 ? "Buzz" : i))
				.forEach(System.out::println);
	}
}

快乐学习!!

地址:https://www.cundage.com/article/fizzbuzz-solution-java.html

相关阅读

palindrome 是单词、短语、数字或其他序列可以在任一方向以相同方式读取的单元,通常如果使用逗号、分隔符或其他单词分隔符,则将被忽略。 [非强制性] 类似地,回文数是那些如果所有数字都颠倒...
算法:给定一个字符串列表,返回该列表中具有第n最长长度的所有字符串,例如:list – Yuri, Ron, Interview, Longest, List, Contain和nth = 1 ...
你们中的许多人一定在童年时玩过 HiLo 游戏。游戏可能与它有些相似,即使不完全相同。这很有趣,对吧?那么,如果我们现在成年了呢?让我们以自己的方式再次玩这个游戏。让我们为此构建一个 java ...
学习编写 Java 程序来反转字符串。我们将首先看到如何反转字符串,我们还将看到如何反转字符串中的单词。 这是 Java 面试 初学者级别的常见问题。让我们记住这些解决方案以便快速回忆。 1.J...
我们都知道如何创建任何类的对象。在 Java 中创建对象的最简单方法是使用 new 关键字。让我们探索在 Java 中不使用 new 关键字创建对象的其他方法。 Table of content...
Java 面试 中的一个常见难题是 – 从数字序列或数组中找出缺失的数字。这个谜题已在 Amazon.com 中被问到。 在这个 Java 谜题中,您有一系列数字开头(例如 1….N),而这个系...
一个数的阶乘是 所有正降序整数的乘积,直到 1。 n 的阶乘用 'n!' 表示。 例如,我们可以将 5 的阶乘写为: 5! = 5 * 4 * 3 * 2 * 1 = 120 在 Java 面试...
这是当今 Java 中最常见的面试问题。有许多技术可以在 java 中查找数组中的重复元素,比如使用 Collections.frequency()。我正在编写另一个更容易和快速的解决方案。 这...
FizzBuzz 是一款主要在小学时玩过的有趣游戏。规则很简单:轮到你时,你说下一个数字。但是,如果该数字是五的倍数,则应改为说“fizz”(最好带有法国口音)。如果数字是七的倍数,你应该说“b...
学习识别 Java 中的死代码和无法访问的代码。它可能会在您的 Java 面试 编码问题中作为一个谜题被问到。 1.死码和无法访问的代码错误 为了理解死代码,在这个难题中,我在下面给出了一段代码...