题目十九:
给你一个整数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"
]
代码:
class Solution {
public:
/*
* @param n: An integer
* @return: A list of strings.
*/
vector<string> fizzBuzz(int n) {
// write your code here
int i = 1,j;
stringstream stream;
vector<string> str;
for(i = 1,j = 0;i<=n;i++,j++)
{
stream.str("");//清空stream
if(i%3==0&&i%5==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
{
stream<<i;
str.push_back(stream.str());
}
}
return str;
}
};
思路很简单就是依次遍历1到n按题目要求写入str中,主要就是int转换成string型的方法。可以采用stringstream的形式转换,但是转换之后要使用stream.("")函数清空stream,防止重复写入
stringstream stream;
stream<<i;
str.push_back(stream.str());
stream.str("");//清空stream