Fizz Buzz
写一个程序,输出从 1 到 n 数字的字符串表示。
- 如果 n 是3的倍数,输出“Fizz”;
- 如果 n 是5的倍数,输出“Buzz”;
- 如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
示例:
n = 15,
返回:
[
"1",
"2",
"Fizz",
"4",
"Buzz",
"Fizz",
"7",
"8",
"Fizz",
"Buzz",
"11",
"Fizz",
"13",
"14",
"FizzBuzz"
]
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| #include <iostream> #include <vector>
class Solution { public: std::vector<std::string> fizzBuzz(int n) { std::vector<std::string> res; ++n; for (int i = 1; i < n; ++i) { std::string str; bool ok = false; if (i % 3 == 0) { str = "Fizz"; ok = true; } if (i % 5 == 0) { str += "Buzz"; ok = true; } if (!ok) { str = std::to_string(i); } res.emplace_back(str); } return res; } };
template <typename T> void printVector(const std::vector<T> &data, int printLen) { for (int i = 0; i < printLen; ++i) { std::cout << data[i] << " "; } std::cout << std::endl; }
int main() { std::vector<std::string> res = Solution().fizzBuzz(15); printVector<std::string>(res, res.size()); return 0; }
|