Fizz Buzz 经典问题
题目描述
给定一个整数 NN,请按照下面的规则返回:
- 如果这个数被 3 整除,返回
Fizz
。 - 如果这个数被 5 整除,返回
Buzz
- 如果这个数能同时被 3 和 5 整除,返回
FizzBuzz
。 - 如果这个数既不能被 3 也不能被 5 整除,返回这个数字。
输入描述
输入 N,1<N≤104N,1<N≤104.
输出描述
输出一行,如题干所述。
输入输出样例
示例
输入
15
输出
FizzBuzz
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
总通过次数: 9213 | 总提交次数: 9654 | 通过率: 95.4%
难度: 中等 标签: 新手
Fizz Buzz 问题解决方案
Fizz Buzz 是一个经典的编程入门问题,用于考察基础逻辑和条件判断能力。根据题目要求,需根据输入整数 N
的整除特性返回对应字符串。以下是完整实现方案:
方法思路
示例验证
条件判断顺序:
先判断是否能同时被 3 和 5 整除(即被 15 整除),再分别判断被 3 或 5 整除的情况,最后处理不满足条件的情况- 关键点:若先判断单一条件(如 3 或 5),会漏掉同时整除的情况,因此需优先检查 15 的倍数
直接输出结果:
题目只需针对单个N
输出一行结果,无需遍历 1 到N
#include <iostream> #include <string> using namespace std; int main() { int N; cin >> N; // 读取输入整数 // 按优先级判断整除条件 if (N % 15 == 0) { cout << "FizzBuzz" << endl; // 同时被3和5整除 } else if (N % 3 == 0) { cout << "Fizz" << endl; // 仅被3整除 } else if (N % 5 == 0) { cout << "Buzz" << endl; // 仅被5整除 } else { cout << N << endl; // 均不满足 } return 0; }
代码解释
输入处理:
cin >> N
读取整数输入,范围1 < N ≤ 10^4
。条件分支逻辑:
- 第 7 行:优先检查
N % 15 == 0
(等效于同时被 3 和 5 整除),输出"FizzBuzz"
5
8
。 - 第 9 行:检查被 3 整除,输出
"Fizz"
。 - 第 11 行:检查被 5 整除,输出
"Buzz"
。 - 第 13 行:默认情况直接输出数字本身(转换为字符串)
2
9
。
- 第 7 行:优先检查
- 输入:
15
→ 输出:FizzBuzz
(15 同时被 3 和 5 整除) - 输入:
5
→ 输出:Buzz
(仅被 5 整除) - 输入:
7
→ 输出:7
(不满足任何整除条件)复杂度分析:
- 时间复杂度:O(1),仅需一次取模运算和条件判断。
- 空间复杂度:O(1),无额外存储开销
5
。