[蓝桥杯]Fizz Buzz 经典问题

发布于:2025-06-05 ⋅ 阅读:(22) ⋅ 点赞:(0)

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 的整除特性返回对应字符串。以下是完整实现方案:

方法思路

示例验证

  1. ​条件判断顺序​​:
    先判断是否能同时被 3 和 5 整除(即被 15 整除),再分别判断被 3 或 5 整除的情况,最后处理不满足条件的情况

    • ​关键点​​:若先判断单一条件(如 3 或 5),会漏掉同时整除的情况,因此需优先检查 15 的倍数
  2. ​直接输出结果​​:
    题目只需针对单个 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;
    }
    代码解释
  3. ​输入处理​​:
    cin >> N 读取整数输入,范围 1 < N ≤ 10^4

  4. ​条件分支逻辑​​:

    • ​第 7 行​​:优先检查 N % 15 == 0(等效于同时被 3 和 5 整除),输出 "FizzBuzz"

      5

      8

    • ​第 9 行​​:检查被 3 整除,输出 "Fizz"
    • ​第 11 行​​:检查被 5 整除,输出 "Buzz"
    • ​第 13 行​​:默认情况直接输出数字本身(转换为字符串)

      2

      9

  5. ​输入​​:15 → ​​输出​​:FizzBuzz(15 同时被 3 和 5 整除)
  6. ​输入​​:5 → ​​输出​​:Buzz(仅被 5 整除)
  7. ​输入​​:7 → ​​输出​​:7(不满足任何整除条件)
    • ​复杂度分析​​:

      • ​时间复杂度​​:O(1),仅需一次取模运算和条件判断。
      • ​空间复杂度​​:O(1),无额外存储开销

        5


网站公告

今日签到

点亮在社区的每一天
去签到