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 = [];