Given number n. Print number from 1 to n. But:
- when number is divided by
3
, print"fizz"
. - when number is divided by
5
, print"buzz"
. - when number is divided by both
3
and5
, print"fizz buzz"
.
Example
If n = 15
, you should return:
[
"1", "2", "fizz",
"4", "buzz", "fizz",
"7", "8", "fizz",
"buzz", "11", "fizz",
"13", "14", "fizz buzz"
]
给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:
- 如果这个数被3整除,打印
fizz
. - 如果这个数被5整除,打印
buzz
. - 如果这个数能同时被
3
和5
整除,打印fizz buzz
.
样例
比如 n = 15
, 返回一个字符串数组:
[
"1", "2", "fizz",
"4", "buzz", "fizz",
"7", "8", "fizz",
"buzz", "11", "fizz",
"13", "14", "fizz buzz"
]
这道题使用vector<string> 来进行动态存储,需要思考的问题就是当这个数字不能被3,5,15整除的时候需要输出数字,而此时需要把int 型的数字转化为string型。
通过查找有两种方法:1.使用to_string(i);
2.借助标准库中的字符串流。举例说明:
ostringstream os;
int i;
os << i;
这样os 表示的就是整型 i 的字符串型。
class Solution {
public:
/*
* @param n: An integer
* @return: A list of strings.
*/
vector<string> fizzBuzz(int n) {
// write your code here
vector<string> str;
for(int i = 1; i <= n; i++)
{
if(i % 15 == 0)
{
str.push_back("fizz buzz");
}
else if(i % 5 == 0)
{
str.push_back("buzz");
}
else if(i % 3 == 0)
{
str.push_back("fizz");
}
else
{
ostringstream os;
os << i;
str.push_back(os.str());
}
}
return str;
}
};
2018/1/24