FizzBuzz code
And no, it’s not to be taken seriously.
package com.w_wins.fizzbuzz;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;
/**
* @author W
*/
public class Main {
public static void main(String[] args) {
try {
fizzbuzz1();
fizzbuzz2();
fizzbuzz3();
fizzbuzz4();
fizzbuzz5();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void fizzbuzz1() {
final String[] fizzBuzz=new String[15];
fizzBuzz[0]="FizzBuzz";
for(int t=1;t<5;++t)fizzBuzz[t*3]="Fizz";
for(int t=1;t<3;++t)fizzBuzz[t*5]="Buzz";
for(int t=1;t<=100;++t)System.out.println(fizzBuzz[t%15]==null?Integer.toString(t):fizzBuzz[t%15]);
}
public static void fizzbuzz2() {
for(int t=1;t<=100;++t){
boolean number=true;
if(t%3==0){
number=false;
System.out.print("Fizz");
}
if(t%5==0){
number=false;
System.out.print("Buzz");
}
System.out.println(number?t:"");
}
}
public static void fizzbuzz3() {
for(int t=1;t<=100;++t){
switch(t%15){
case 1:
case 2:
case 4:
case 7:
case 8:
case 11:
case 13:
case 14:
System.out.println(t);
break;
case 3:
case 6:
case 9:
case 12:
System.out.println("Fizz");
break;
case 0:
System.out.print("Fizz");
case 5:
case 10:
System.out.println("Buzz");
break;
}
}
}
public static void fizzbuzz4() throws InterruptedException, ExecutionException {
final ExecutorService service=Executors.newCachedThreadPool();
final Map
for(int d=1;d<=100;++d){
final int t=d;
final FutureTask
public String call() throws Exception {
if(t%15==0)return ”FizzBuzz”;
if(t%3==0)return ”Fizz”;
if(t%5==0)return ”Buzz”;
return Integer.toString(t);
}
});
service.submit(future);
futures.put(t,future);
}
for(int t=1;t<=100;++t){
System.out.println(futures.get(t).get());
}
final boolean isEmpty=service.shutdownNow().isEmpty();
assert(isEmpty);
}
public static enum FizzBuzz{
FIZZBUZZ(true,true,false){
protected boolean matches(final int t){
return t%15==0;
}
},FIZZ(true,false,false){
protected boolean matches(final int t){
return t%3==0;
}
},BUZZ(false,true,false){
protected boolean matches(final int t){
return t%5==0;
}
},NUMBER(false,false,true){
protected boolean matches(final int t){
return true;
}
};
private final boolean fizz,buzz,number;
protected abstract boolean matches(int t);
FizzBuzz(final boolean fizz,final boolean buzz,final boolean number){
this.fizz=fizz;
this.buzz=buzz;
this.number=number;
}
public void printNumber(final int t){
if(fizz)System.out.print("Fizz");
if(buzz)System.out.print("Buzz");
if(number)System.out.print(t);
System.out.println();
}
public static FizzBuzz getFizzBuzz(final int t){
for(FizzBuzz fizzBuzz:FizzBuzz.values()){
if(fizzBuzz.matches(t)){
return fizzBuzz;
}
}
throw new Error("Can't happen");
}
}
public static void fizzbuzz5() {
for(int t=1;t<=100;++t){
FizzBuzz.getFizzBuzz(t).printNumber(t);
}
}
}