mirror of
https://github.com/ShusenTang/LeetCode.git
synced 2026-08-31 20:29:44 +08:00
add 412. Fizz Buzz 🍺
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# [412. Fizz Buzz](https://leetcode.com/problems/fizz-buzz/)
|
||||
|
||||
# 思路
|
||||
|
||||
这题很简单,我们可以用for循环从i=1到i=n,然后判断i是否是3或者5的倍数。
|
||||
|
||||
评论区说因为取余操作`%`比较费时,所以我们应该避免取余,下面代码给出了两种避免取余的思路,亲测确实比直接取余要快一点点。
|
||||
|
||||
# C++
|
||||
``` C++
|
||||
class Solution {
|
||||
public:
|
||||
vector<string> fizzBuzz(int n) {
|
||||
vector<string>res(n);
|
||||
for(int i = 1; i <= n; i++) res[i-1] = to_string(i);
|
||||
for(int i = 2; i < n; i+=3) res[i] = "Fizz";
|
||||
for(int i = 4; i < n; i+=5) res[i] = "Buzz";
|
||||
for(int i = 14; i < n; i+=15) res[i] = "FizzBuzz";
|
||||
|
||||
return res;
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
``` C++
|
||||
class Solution {
|
||||
public:
|
||||
vector<string> fizzBuzz(int n) {
|
||||
vector<string>res(n);
|
||||
|
||||
int fizz = 3, buzz = 5;
|
||||
for(int i = 1; i <= n; i++){
|
||||
if(i == fizz){
|
||||
res[i-1] = "Fizz";
|
||||
fizz += 3;
|
||||
if(i == buzz){
|
||||
buzz += 5;
|
||||
res[i-1] += "Buzz";
|
||||
}
|
||||
}
|
||||
else if(i == buzz){
|
||||
buzz += 5;
|
||||
res[i-1] = "Buzz";
|
||||
}
|
||||
else res[i-1] = to_string(i);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
};
|
||||
```
|
||||
Reference in New Issue
Block a user