题目描述
【leetcode】412. Fizz Buzz( Fizz Buzz )
写一个程序,输出从 1 到 n 数字的字符串表示。
-
如果 n 是3的倍数,输出“Fizz”;
-
如果 n 是5的倍数,输出“Buzz”;
3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
示例:
n = 15,
返回:
[
"1",
"2",
"Fizz",
"4",
"Buzz",
"Fizz",
"7",
"8",
"Fizz",
"Buzz",
"11",
"Fizz",
"13",
"14",
"FizzBuzz"
]
第一次解答
思路
这类体没有什么套路,就模拟整个过程。但是也可以有好的编程方式使得代码更易于维护,例如官方题解
test case:
代码:
#include <string>
class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> result;
result.reserve(n);
for(int i=1; i<=n; ++i){
if(i%3 == 0){
if(i%5 == 0){
result.push_back("FizzBuzz");
continue;
}
result.push_back("Fizz");
continue;
}
if(i%5 == 0){
result.push_back("Buzz");
continue;
}
result.push_back(to_string(i));
}
return result;
}
};
结果: