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"
]
java:
class Solution {
/**
* param n: As description.
* return: A list of strings.
*/
public ArrayList<String> fizzBuzz(int n) {
ArrayList<String> results = new ArrayList<String>();
int i = 1;
int p3 = 1, p5 = 1;
while (i <= n) {
while (i < p3 * 3 && i < p5 * 5) {
results.add(i + "");
i++;
}
if (i <= n && p3 * 3 == p5 * 5) {
results.add("fizz buzz");
p3++;
p5++;
i++;
continue;
}
while (i <= n && p3 * 3 <= i) {
results.add("fizz");
p3++;
i++;
}
while (i <= n && p5 * 5 <= i) {
results.add("buzz");
p5++;
i++;
}
}
return results;
}
}
class Solution {
/**
* param n: As description.
* return: A list of strings.
*/
public ArrayList<String> fizzBuzz(int n) {
ArrayList<String> results = new ArrayList<String>();
for (int i = 1; i <= n; i++) {
if (i % 15 == 0) {
results.add("fizz buzz");
} else if (i % 5 == 0) {
results.add("buzz");
} else if (i % 3 == 0) {
results.add("fizz");
} else {
results.add(String.valueOf(i));
}
}
return results;
}
}
c++:
class Solution {
public:
/*
* param n: As description.
* return: A list of strings.
*/
vector<string> fizzBuzz(int n) {
vector<string> results;
for (int i = 1; i <= n; i++) {
if (i % 15 == 0) {
results.push_back("fizz buzz");
} else if (i % 5 == 0) {
results.push_back("buzz");
} else if (i % 3 == 0) {
results.push_back("fizz");
} else {
results.push_back(to_string(i));
}
}
return results;
}
};