【题目】
给你一个整数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)