写一个程序,输出从 1 到 n 数字的字符串表示。
- 如果 n 是3的倍数,输出“Fizz”;
- 如果 n 是5的倍数,输出“Buzz”;
- 3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
思路:
很直观,先判断是不是同时3和5的倍数,然后判断3的倍数,5的倍数。遇到的问题是c++的vector不是很熟练。
【push_back()和insert() 的区别】
insert()的第一个参数是迭代器,也就是插入灵活,可以向不同位置插入。而push_back()就是像最后一个插入。
【将数字转换成字符串】
itoa()是Windows的库函数,需要include cstdlib的头文件。c++ 11中又了to_string()函数,基本能将涉及到的数字的数据类型都转成字符串。
代码:
class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> res;
string temp;
for(int i = 1 ; i <= n; i++){
if( i % 3 == 0 && i % 5 == 0){
res.push_back("FizzBuzz");
}
else if( i%3 == 0){
res.push_back("Fizz");
}
else if( i%5 == 0 ){
res.push_back("Buzz");
}
else{
temp = to_string(i);
//cout<<temp;
res.push_back(temp);
}
}
return res;
}
};