1、题目描述
写一个程序,输出从 1 到 n 数字的字符串表示。
1. 如果 n 是3的倍数,输出“Fizz”;
2. 如果 n 是5的倍数,输出“Buzz”;
3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
2、示例:
n = 15,
返回:["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]
3、题解
基本思想:数字与字符串的相互转换,分别是std::to_string和std::stoi/stol/stoll
#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<string.h>
using namespace std;
class Solution {
public:
vector<string> fizzBuzz(int n) {
//基本思想:数字与字符串的相互转换,分别是std::to_string和std::stoi/stol/stoll
vector<string> s{"Fizz","Buzz","FizzBuzz"};
vector<string> res;
for(int i=1;i<=n;i++)
{
if(i%15==0)
res.push_back(s[2]);
else if(i%5==0)
res.push_back(s[1]);
else if(i%3==0)
res.push_back(s[0]);
else
res.push_back(to_string(i));
}
return res;
}
};
int main()
{
Solution solute;
int n=15;
vector<string> res=solute.fizzBuzz(n);
for_each(res.begin(),res.end(),[](string v){cout<<v<<endl;});
return 0;
}