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”.
Example:
n = 15,
Return:
[
“1”,
“2”,
“Fizz”,
“4”,
“Buzz”,
“Fizz”,
“7”,
“8”,
“Fizz”,
“Buzz”,
“11”,
“Fizz”,
“13”,
“14”,
“FizzBuzz”
]
注意:
在进行多次转换的时候,必须调用stringstream的成员函数clear().
class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> vec;
string str;
stringstream stream;
for(int i = 1; i <= n; i++){
if((i % 3 == 0) && (i % 5 == 0))
str = "FizzBuzz";
else if(i % 3 == 0)
str = "Fizz";
else if(i % 5 == 0)
str = "Buzz";
else{
stream << i;
stream >> str;
stream.clear();//在进行多次转换前,必须清除stream
}
vec.push_back(str);
}
return vec;
}
};