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
3and5, 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;
}
};
本文介绍了一个经典的编程面试题——FizzBuzz问题的解决方案。通过Java和C++两种语言演示了如何根据给定数字n打印从1到n的数字,并在数字能被3整除时打印fizz,被5整除时打印buzz,同时被3和5整除时打印fizzbuzz。提供了简洁明了的代码实现。
549

被折叠的 条评论
为什么被折叠?



