【题目】

给你一个整数n. 从1到n按照下面的规则打印每个数:

如果这个数被3整除,打印fizz

如果这个数被5整除,打印buzz

如果这个数能同时被3和5整除,打印fizz buzz

样例

比如n=15, 返回一个字符串数组:

["1", "2", "fizz", "4", "buzz", "fizz", "7", "8", "fizz", "buzz", "11", "fizz", "13", "14", "fizz buzz"]




【C++ 代码】

class Solution {
public:
    /**
     * param n: As description.
     * return: A list of strings.
     */
    vector<string> fizzBuzz(int n) {
        vector<string> results;
        for (int i = 1; i <= n; i++) {
            if (i % 15 == 0) {
                results.push_back("fizz buzz");
            } else if (i % 5 == 0) {
                results.push_back("buzz");
            } else if (i % 3 == 0) {
                results.push_back("fizz");
            } else {
                results.push_back(to_string(i));
            }
        }
        return results;
    }
};


【我的错误】

vector 属于 STL,相当于一个高级、变长的数组,需要#include<vector>

应该阅读清楚题意,当能跟被3且被5 整除时输出 'fizz buzz'

在循环里面,应该使用自增的 i 进行判断、输出,我错输入成为 n ,导致输出一直是 'fizz buzz'

vector::push_back(n) 是错误的,应该将 int n 转化成 string ,如 to_string(i)