412. Fizz Buzz

来源:互联网 发布:博易大师mac版 编辑:程序博客网 时间:2024/06/11 17:06

Write a program that outputs the string representation of numbers from 1 to n.

But for multiples of three it should output “Fizz” instead of the number and for the multiples of five output “Buzz”. For numbers which are multiples of both three and five output “FizzBuzz”.

n = 15,Return:[    "1",    "2",    "Fizz",    "4",    "Buzz",    "Fizz",    "7",    "8",    "Fizz",    "Buzz",    "11",    "Fizz",    "13",    "14",    "FizzBuzz"]

class Solution {public:    vector<string> fizzBuzz(int n) {        vector<string> ans;        for(int i = 1; i <= n; i++)        {            if(i%3 == 0)            {                if(i%5 == 0)                ans.push_back("FizzBuzz");  //双引号 不是单引号                else                 ans.push_back("Fizz");            }            else if(i%5 == 0)            ans.push_back("Buzz");            else            ans.push_back(to_string(i));    //  to_string 的用法        }        return ans;    }};



                                                                                  更好的
class Solution {public:    vector<string> fizzBuzz(int n) {        vector<string> ans;        for(int i = 1; i <= n; i++)        {            string an  = "";            if(i%3 == 0)            an += "Fizz";            if(i%5 == 0)            an += "Buzz";            if(an == "")            an += to_string(i);            ans.push_back(an);                    }        return ans;    }};



                                                  另一种  用到res[i-1] 时  之前的定义 不能写成  vector<string> res;  要写成下面的样子。
class Solution {public:    vector<string> fizzBuzz(int n) {        vector<string> res(n);        for(int i=1; i<=n; ++i)        {            if(i%15==0)                res[i-1] = "FizzBuzz";            else if(i%5==0)                res[i-1] = "Buzz";            else if(i%3==0)                res[i-1] = "Fizz";            else                res[i-1] = to_string(i);        }        return res;    }};


0 0