题目来源:链接: [https://leetcode-cn.com/problems/fizz-buzz/]
412. Fizz Buzz
1.问题描述
写一个程序,输出从 1 到 n 数字的字符串表示。
-
如果 n 是3的倍数,输出“Fizz”;
-
如果 n 是5的倍数,输出“Buzz”;
-
如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
示例1:
n = 15,
返回:
[
"1",
"2",
"Fizz",
"4",
"Buzz",
"Fizz",
"7",
"8",
"Fizz",
"Buzz",
"11",
"Fizz",
"13",
"14",
"FizzBuzz"
]
2.我的解决方案
easy 类型题目。注意if 的 判断条件就行了。不多BB。
我的 if 判断条件有点 啰嗦了,下面改进一下。
我的AC代码:
class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> res;
for(int i = 1; i <= n; ++i) {
int tag = 0;
if(i%3 == 0 && i%5 == 0) {
tag = 1;
res.push_back("FizzBuzz");
}
else if(i%3 == 0 && tag == 0) {
res.push_back("Fizz");
}
else if(i%5 == 0 && tag == 0) {
res.push_back("Buzz");
}
else {
res.push_back(to_string(i));
}
}
return res;
}
};
3.大神们的解决方案
思路一样,if 条件判断 改进了一点。
方法:
class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> res;
for(int i = 1; i <= n; ++i) {
if(i%3 == 0 && i%5 == 0) {
res.push_back("FizzBuzz");
}
else if(i%3 == 0 && i%5 != 0) {
res.push_back("Fizz");
}
else if(i%5 == 0 && i%3 != 0) {
res.push_back("Buzz");
}
else {
res.push_back(to_string(i));
}
}
return res;
}
};
4.我的收获
2019/4/15 胡云层 于南京 55