算法:Fizz Buzz解题思路

现在有一个整数,要求返回一个数组,数组内容如下:

answeri == "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。

answeri == "Fizz" 如果 i 是 3 的倍数。

answeri == "Buzz" 如果 i 是 5 的倍数。

answeri == i

举例:

cpp 复制代码
输入:
n = 3
输出:
["1","2","Fizz"]

解法一:

cpp 复制代码
class Solution {
public:
    vector<string> fizzBuzz(int n) {
        vector<string> answer(n);
        for(int i=1;i<=n;i++)
        {
            if(i%3==0&&i%5==0)
            {
                answer[i-1]="FizzBuzz";
            }
            else if(i%3==0)
            {
                answer[i-1]="Fizz";
            }
            else if(i%5==0)
            {
                answer[i-1]="Buzz";
            }
            else 
            {
                answer[i-1]=to_string(i);
            }
        }
        return answer;
        
    }
};

解法二:不用担心下标

cpp 复制代码
class Solution {
public:
    vector<string> fizzBuzz(int n) {
        vector<string> answer; // 依然为空,但我不直接取下标
        for (int i = 1; i <= n; i++) {
            if (i % 3 == 0 && i % 5 == 0) {
                answer.push_back("FizzBuzz"); // 从尾部追加,绝对安全
            } else if (i % 3 == 0) {
                answer.push_back("Fizz");
            } else if (i % 5 == 0) {
                answer.push_back("Buzz");
            } else {
                answer.push_back(to_string(i));
            }
        }
        return answer;
    }
};

注意点:

空数组不能用 下标 赋值 ------ 必须 vector<string> answer(n); 或者用 push_back。

FizzBuzz 必须从 1 数到 n,不是从 0。

字符串数组赋值右边必须是字符串,整数要用 to_string() 转换。

相关推荐
朔北之忘 Clancy5 小时前
2025 CSP-J 第二轮真题解析
c++·青少年编程·题解·noip·csp·信奥赛·noi
longlongzihan5 小时前
LeetCode 17电话号码的字母组合:回溯算法(DFS)详解
c++·算法·leetcode·深度优先
yolo_guo5 小时前
调试mysql延迟与libevent回调实际发送回复时机问题
c++·mysql·libevent
封印师请假去地球钓鱼5 小时前
边解边变的问题:从“决策依赖“一词出发
人工智能·算法
今晚打老虎6 小时前
c++之提高A(前缀和)(第三课)
数据结构·c++·算法
不会就选b7 小时前
算法日常・每日刷题--<贪心>26
数据结构·算法
by209997 小时前
从结构体到对象:正式学习C++类的骨架、封装与this指针
c++·经验分享·学习
2601_962218618 小时前
C语言中三种库的编译和使用方法
开发语言·c++
jimy18 小时前
派生类重写基类虚函数(二):override的作用
开发语言·c++
ebiobiz9 小时前
基于 GD32 Embedded Builder (GEB) 与 Nimmake 的 MCU 工程搭建指南
c++·python·单片机·嵌入式硬件·mcu