題目描述
【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;
}
};
結果: