[Notiz] Java FizzBuzz Code Golf

Java FizzBuzz Code Golf

Java1.4.2 (105char)

A.java


class B{static{for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i+"":"":"Buzz"));}}
$ java -version
java version "1.4.2_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_19-b04)
Java HotSpot(TM) Client VM (build 1.4.2_19-b04, mixed mode)
$ javac -version
javac: -Version ist ein ungültiges Flag.
Wie benutzt man: javac <options> <source files>
Die verfügbaren Optionen sind:
  -g Generieren Sie alle Debug-Informationen
  -g:none Generiert keine Debug-Informationen
  -g:{lines,vars,source}Generieren Sie nur einige Debug-Informationen
  -Jetzt keine Warnung auslösen
  -Drucken Sie eine Nachricht über das Verhalten des ausführlichen Compilers
  -Veraltet Gibt den Speicherort von Quellen aus, in denen veraltete APIs verwendet werden
  -classpath <path>Geben Sie den Speicherort für die Benutzerklassendatei an
  -sourcepath <path>Geben Sie an, wo die Eingabequelldatei durchsucht werden soll
  -bootclasspath <path>Ersetzen Sie den Speicherort der Bootstrap-Klassendatei
  -extdirs <dirs>Ersetzen Sie den Speicherort der installierten Erweiterungen
  -d <directory>Geben Sie den Speicherort für die generierte Klassendatei an
  -encoding <encoding>Gibt die von der Quelldatei verwendete Zeichenkodierung an
  -source <release>Behalten Sie die Quellkompatibilität mit der angegebenen Version bei
  -target <release>Generieren Sie eine Klassendatei für eine bestimmte VM-Version
  -Hilfe Drucken Sie eine Zusammenfassung der Standardoptionen

$ echo -n 'class B{static{for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}' > A.java
$ javac A.java
A.java:1: ?Inkompatibler Typ für:Keiner ist ein Subtyp des anderen.
Zweiter Operand: int
Dritter Operand: java.lang.String
class B{static{for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}
                                                                                     ^
A.java:1: ?Inkompatibler Typ für:Keiner ist ein Subtyp des anderen.
Zweiter Operand: int
Dritter Operand: java.lang.String
class B{static{for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}
                                                                               ^
2 Fehler
$ echo -n 'class A{static{for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i+"":"":"Buzz"));}}' > A.java
$ wc -c
105 A.java
$ javac A.java
$ java A
1
2
Fizz
4
Buzz
(Weggelassen)
97
98
Fizz
Buzz
Exception in thread "main" java.lang.NoSuchMethodError: main

Java5~Java6 (96char)

A.java


enum A{B;int i;{for(;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}
$ java -version
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
Java HotSpot(TM) Client VM (build 1.5.0_22-b03, mixed mode, sharing)
$ javac -version
javac 1.5.0_22
javac:Es gibt keine Quelldatei.
Wie benutzt man: javac <options> <source files>
Die verfügbaren Optionen sind:
  -g Generieren Sie alle Debug-Informationen
  -g:none Generiert keine Debug-Informationen
  -g:{lines,vars,source}Generieren Sie nur einige Debug-Informationen
  -Jetzt keine Warnung auslösen
  -Drucken Sie eine Nachricht über das Verhalten des ausführlichen Compilers
  -Veraltet Gibt den Speicherort von Quellen aus, in denen veraltete APIs verwendet werden
  -classpath <path>Geben Sie den Speicherort für die Benutzerklassendatei an
  -cp <path>Geben Sie den Speicherort für die Benutzerklassendatei an
  -sourcepath <path>Geben Sie an, wo die Eingabequelldatei durchsucht werden soll
  -bootclasspath <path>Ersetzen Sie den Speicherort der Bootstrap-Klassendatei
  -extdirs <dirs>Ersetzen Sie den Speicherort der installierten Erweiterungen
  -endorseddirs <dirs>Ersetzen Sie die empfohlene Standardpfadposition
  -d <directory>Geben Sie den Speicherort für die generierte Klassendatei an
  -encoding <encoding>Gibt die von der Quelldatei verwendete Zeichenkodierung an
  -source <release>Behalten Sie die Quellkompatibilität mit der angegebenen Version bei
  -target <release>Generieren Sie eine Klassendatei für eine bestimmte VM-Version
  -version Versionsinformationen
  -Hilfe Drucken Sie eine Zusammenfassung der Standardoptionen
  -X Drucken Sie eine Zusammenfassung der nicht standardmäßigen Optionen
  -J<flag>                   <flag>Direkt an das Ausführungssystem übergeben

$ echo -n 'enum A{B;int i;{for(;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}' > A.java
$ wc -c A.java
96 A.java
$ javac A.java
$ java A
1
2
Fizz
4
Buzz
(Weggelassen)
97
98
Fizz
Buzz
Exception in thread "main" java.lang.NoSuchMethodError: main

Java7 (130char)

A.java


class A{public static void main(String[]a){for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}
$ java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) Client VM (build 24.80-b11, mixed mode, sharing)
$ javac -version
javac 1.7.0_80
$ echo -n 'enum A{B;int i;{for(;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}' > A.java
$ javac A.java
$ java A
Error:Die Hauptmethode kann nicht in Klasse A gefunden werden. Definieren Sie die Hauptmethode wie folgt:
   public static void main(String[] args)
$ echo -n 'class A{public static void main(String[]a){for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}' > A.java
$ wc -c A.java
130 A.java
$ javac A.java
$ java A
1
2
Fizz
4
Buzz
(Weggelassen)
97
98
Fizz
Buzz

Java8 oder höher (127char)

A.java


interface A{static void main(String[]a){for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}
$ java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
$ javac -version
javac 1.8.0_212
$ echo -n 'interface A{static void main(String[]a){for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}' > A.java
$ wc -c A.java
127 A.java
$ javac A.java
$ java A
1
2
Fizz
4
Buzz
(Weggelassen)
97
98
Fizz
Buzz

Jshell (83char)

int i;for(;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"))
$ jshell --version
jshell 11.0.3
$ echo -n 'int i;for(;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"))' | jshell -
1
2
Fizz
4
Buzz
(Weggelassen)
97
98
Fizz
Buzz

Jshell PRINTING Version (72char)

int i;for(;i++<100;)println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"))
$ echo -n 'int i;for(;i++<100;)println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"))' | jshell PRINTING -
1
2
Fizz
4
Buzz
(Weggelassen)
97
98
Fizz
Buzz

Recommended Posts

[Notiz] Java FizzBuzz Code Golf
[Memo] Zusammenfassung des Testcodes
Persönliches Python-Code-Memo
Unterschied zwischen Java und Python (Memo)