原题链接:点击打开链接
首先想到的方法如下:
import java.util.ArrayList;
import java.util.List;
public class Solution {
public List<String> fizzBuzz(int n) {
List<String> result = new ArrayList<String>();
for(int i=1; i<n+1; i++){
if(i%3==0 && i%5==0){
result.add("FizzBuzz");
continue;
}
if(i%3==0){
result.add("Fizz");
continue;
}
if(i%5==0){
result.add("Buzz");
continue;
}
result.add(i+"");
}
return result;
}
}
然后看到讨论区有更好的方法——不使用取余操作。参考代码如下:
import java.util.ArrayList;
import java.util.List;
public class Solution {
public List<String> fizzBuzz(int n) {
List<String> result = new ArrayList<String>();
for(int i=1,fizz=1,buzz=1; i<n+1; i++,fizz++,buzz++){
if(fizz==3 && buzz==5){
result.add("FizzBuzz");
fizz=0;
buzz=0;
} else if(fizz==3){
result.add("Fizz");
fizz=0;
} else if(buzz==5){
result.add("Buzz");
buzz=0;
} else {
result.add(i+"");
}
}
return result;
}
}