leetcode 412. Fizz Buzz(Fizz Buzz)

时间:2023-01-03 00:05:25

题目描述:

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

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

  2. 如果 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"
    ]

解法:

class Solution {
public:
    string toString(int n){
        if(n%15 == 0){
            return "FizzBuzz";
        }else if(n%3 == 0){
            return "Fizz";
        }else if(n%5 == 0){
            return "Buzz";
        }else{
            string res = "";
            while(n != 0){
                res = char('0' + n%10) + res;
                n /= 10;
            }
            return res;
        }
    }
    
    vector<string> fizzBuzz(int n) {
        vector<string> res;
        for(int i = 1; i <= n; i++){
            res.push_back(toString(i));
        }
        return res;
    }
};