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" ]
这个非常的简单了。需要注意的是list是interface,不能直接new list
import java.util.ArrayList;
import java.util.List;
public class Fizz_Buzz_412 {
public List<String> fizzBuzz(int n) {
List<String> result=new ArrayList<String>();
for(int i=1;i<=n;i++){
if(i%15==0){
result.add("FizzBuzz");
}
else if(i%3==0){
result.add("Fizz");
}
else if(i%5==0){
result.add("Buzz");
}
else{
result.add(String.valueOf(i));
}
}
return result;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Fizz_Buzz_412 f=new Fizz_Buzz_412();
List<String> list=f.fizzBuzz(15);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
};
}
}
此外,发现了大神的不用%的解法,这个思路也是很妙啊!public class Solution {
public List<String> fizzBuzz(int n) {
List<String> ret = new ArrayList<String>(n);
for(int i=1,fizz=0,buzz=0;i<=n ;i++){
fizz++;
buzz++;
if(fizz==3 && buzz==5){
ret.add("FizzBuzz");
fizz=0;
buzz=0;
}else if(fizz==3){
ret.add("Fizz");
fizz=0;
}else if(buzz==5){
ret.add("Buzz");
buzz=0;
}else{
ret.add(String.valueOf(i));
}
}
return ret;
}
}