Leetcode刷题55-412. Fizz Buzz(C++详细解法!!!)

题目来源:链接: [https://leetcode-cn.com/problems/fizz-buzz/]

1.问题描述

写一个程序,输出从 1 到 n 数字的字符串表示。

  1. 如果 n 是3的倍数,输出“Fizz”;

  2. 如果 n 是5的倍数,输出“Buzz”;

  3. 如果 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.我的收获

链接:将 int 转成 string 的两种方法。

2019/4/15 胡云层 于南京 55

猜你喜欢

转载自blog.csdn.net/qq_40858438/article/details/89305621