Fizz Buzz,给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果。
发布人:shili8
发布时间:2025-03-15 18:20
阅读次数:0
**Fizz Buzz**
================**概述**
--------
Fizz Buzz 是一个经典的编程挑战,要求开发者在给定范围内输出特定的数字序列。这个问题旨在测试程序员对循环、条件判断和字符串操作的理解。
**问题描述**
-------------
给定一个整数 `n`,从1 到 `n` 输出以下内容:
* 如果数字是3 的倍数,则输出 "Fizz"。
* 如果数字是5 的倍数,则输出 "Buzz"。
* 如果数字既是3 的倍数,又是5 的倍数,则输出 "FizzBuzz"。
* 否则,输出该数字本身。
**解决方案**
------------### **Python 实现**
def fizz_buzz(n):
"""
Fizz Buzz 表示,从1 到 n 输出特定序列。
Args:
n (int): 序列的结束值。
Returns:
list: 从1 到 n 的 Fizz Buzz 表示。
"""
answer = []
for i in range(1, n +1):
# 如果数字是3 的倍数,则输出 "Fizz"
if i %3 ==0:
answer.append("Fizz")
# 如果数字是5 的倍数,则输出 "Buzz"
elif i %5 ==0:
answer.append("Buzz")
# 如果数字既是3 的倍数,又是5 的倍数,则输出 "FizzBuzz"
elif i %15 ==0:
answer.append("FizzBuzz")
# 否则,输出该数字本身 else:
answer.append(str(i))
return answer# 示例使用n =20result = fizz_buzz(n)
print(result)
### **Java 实现**
javapublic class FizzBuzz {
/**
* Fizz Buzz 表示,从1 到 n 输出特定序列。
*
* @param n 序列的结束值。
* @return 从1 到 n 的 Fizz Buzz 表示。
*/
public static String[] fizz_buzz(int n) {
String[] answer = new String[n];
for (int i =1; i <= n; i++) {
// 如果数字是3 的倍数,则输出 "Fizz"
if (i %3 ==0) {
answer[i -1] = "Fizz";
}
// 如果数字是5 的倍数,则输出 "Buzz"
else if (i %5 ==0) {
answer[i -1] = "Buzz";
}
// 如果数字既是3 的倍数,又是5 的倍数,则输出 "FizzBuzz"
else if (i %15 ==0) {
answer[i -1] = "FizzBuzz";
}
// 否则,输出该数字本身 else {
answer[i -1] = String.valueOf(i);
}
}
return answer;
}
public static void main(String[] args) {
int n =20;
String[] result = fizz_buzz(n);
for (String str : result) {
System.out.println(str);
}
}
}
### **C++ 实现**
cpp#include <iostream>
using namespace std;
/**
* Fizz Buzz 表示,从1 到 n 输出特定序列。
*
* @param n 序列的结束值。
*/
void fizz_buzz(int n) {
for (int i =1; i <= n; i++) {
// 如果数字是3 的倍数,则输出 "Fizz"
if (i %3 ==0) {
cout << "Fizz";
}
// 如果数字是5 的倍数,则输出 "Buzz"
else if (i %5 ==0) {
cout << "Buzz";
}
// 如果数字既是3 的倍数,又是5 的倍数,则输出 "FizzBuzz"
else if (i %15 ==0) {
cout << "FizzBuzz";
}
// 否则,输出该数字本身 else {
cout << i;
}
}
}
int main() {
int n =20;
fizz_buzz(n);
return0;
}
### **JavaScript 实现**
javascript/**
* Fizz Buzz 表示,从1 到 n 输出特定序列。
*
* @param {number} n 序列的结束值。
*/
function fizz_buzz(n) {
let answer = [];
for (let i =1; i <= n; i++) {
// 如果数字是3 的倍数,则输出 "Fizz"
if (i %3 ==0) {
answer.push("Fizz");
}
// 如果数字是5 的倍数,则输出 "Buzz"
else if (i %5 ==0) {
answer.push("Buzz");
}
// 如果数字既是3 的倍数,又是5 的倍数,则输出 "FizzBuzz"
else if (i %15 ==0) {
answer.push("FizzBuzz");
}
// 否则,输出该数字本身 else {
answer.push(i);
}
}
return answer;
}
// 示例使用let n =20;
let result = fizz_buzz(n);
console.log(result);
### **Go 实现**
gopackage mainimport "fmt"
/**
* Fizz Buzz 表示,从1 到 n 输出特定序列。
*
* @param {int} n 序列的结束值。
*/
func fizz_buzz(n int) []string {
answer := make([]string, n)
for i := range answer {
// 如果数字是3 的倍数,则输出 "Fizz"
if i+1%3 ==0 {
answer[i] = "Fizz"
}
// 如果数字是5 的倍数,则输出 "Buzz"
else if (i +1)%5 ==0 {
answer[i] = "Buzz"
}
// 如果数字既是3 的倍数,又是5 的倍数,则输出 "FizzBuzz"
else if (i+1)%15 ==0 {
answer[i] = "FizzBuzz"
}
// 否则,输出该数字本身 else {
answer[i] = fmt.Sprintf("%d", i+1)
}
}
return answer}
func main() {
n :=20 result := fizz_buzz(n)
for _, str := range result {
fmt.Println(str)
}
}
### **Rust 实现**
rustfn fizz_buzz(n: i32) -> Vec{ let mut answer = vec![]; for i in1..=n { // 如果数字是3 的倍数,则输出 "Fizz" if i %3 ==0 { answer.push("Fizz".to_string()); } // 如果数字是5 的倍数,则输出 "Buzz" else if i %5 ==0 { answer.push("Buzz".to_string()); } // 如果数字既是3 的倍数,又是5 的倍数,则输出 "FizzBuzz" else if i %15 ==0 { answer.push("FizzBuzz".to_string()); } // 否则,输出该数字本身 else { answer.push(i.to_string()); } } return answer; } fn main() { let n =20; let result = fizz_buzz(n); for str in &result { println!("{}", str); } }
### **Swift 实现**
swift/**
* Fizz Buzz 表示,从1 到 n 输出特定序列。
*
* @param {int} n 序列的结束值。
*/
func fizz_buzz(n: Int) -> [String] {
var answer = [String]()
for i in1...n {
// 如果数字是3 的倍数,则输出 "Fizz"
if i %3 ==0 {
answer.append("Fizz")
}
// 如果数字是5 的倍数,则输出 "Buzz"
else if i %5 ==0 {
answer.append("Buzz")
}
// 如果数字既是3 的倍数,又是5 的倍数,则输出 "FizzBuzz"
else if i %15 ==0 {
answer.append("FizzBuzz")
}
// 否则,输出该数字本身 else {
answer.append(String(i))
}
}
return answer}
// 示例使用let n =20let result = fizz_buzz(n)
for str in result {
print(str)
}
### **PHP 实现**
php/**
* Fizz Buzz 表示,从1 到 n 输出特定序列。
*
* @param {int} $n 序列的结束值。
*/
function fizz_buzz($n) {
$answer = [];

