En Java, j'ai vérifié quel alphabet peut être écrit en interdisant un type d'alphabet (écrire sans utiliser l'un de a à z). Simplement jouer. Article précédent Version FizzBuzz.
Auparavant, il était facile d'éviter les constantes de chaîne ("Hello, world"), donc c'était principalement évité avec "class declaration", "main declaration" et "output statement". Puisque tous existent cette fois, l'alphabet précédemment délié \ (acdegimnorstv ) ne peut pas être lié. Il sera donc vérifié si FizzBuzz peut également lier "bfhjklpquwxyz" qui était lié la dernière fois.
La raison de la 4ème liaison était que je pensais que la limite supérieure de FizzBuzz pouvait être abaissée en utilisant des octets, etc. pour éviter l'alphabet, alors j'ai pensé que je pourrais rendre possible la plage de type numérique général int. (Autrement dit, longtemps c'est OK)
La raison de la liaison n ° 5 est que s'il y a intégration, si toute la sortie est incorporée telle quelle sans utiliser de boucle extrême, le contenu ne sera pas différent du monde Hello précédent. Il est difficile de juger à quel point il est intégré, mais c'est un jugement de soi. Si vous n'aimez pas le jugement, écrivez un article que vous avez essayé en fonction de vos propres critères de jugement.
Exemple d'exécution
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Pour la 10ème reliure, voir Article précédent
Possible: bfhjklpquwxyz Impossible: acdegimnorstv
J'écris du code qui est à peu près lié par ordre alphabétique. Je n'ai pas beaucoup expliqué la technique que j'ai utilisée la dernière fois. hjkqwx Tout d'abord, j'ai écrit FizzBuzz normalement. Il y a plusieurs façons de le faire, donc je viens de réécrire le code python de Wikipedia en java. Comme dans l'exemple, les noms de variables sont écrits en japonais afin de ne pas utiliser d'alphabets.
Fiz Buzz.java
classe Fiz Buzz{
public static void main(String[]argument) {
for (nombre int=1;nombre<= 20;nombre++) {
if (nombre% 15 == 0)
System.out.println("FizzBuzz");
else if (nombre% 3 == 0)
System.out.println("Fizz");
else if (nombre% 5 == 0)
System.out.println("Buzz");
else
System.out.println(nombre);
}
}
}
bpz Tout d'abord, je l'ai effacé en écrivant la chaîne de caractères en type char et en la réveillant au format. Cela effacera z. Ensuite, créez une interface et supprimez la méthode principale publique. Cela fait disparaître b. Il n'a pas disparu plus que ce à quoi je m'attendais.
Fiz Buzz.java
interface Fiz Buzz{
static void main(String[]argument) {
for (nombre int=1;nombre<= 20;nombre++) {
if (nombre% 15 == 0)
System.out.format("%c%c%c%c%c%c%c%c%c",70,105,122,122,66,117,122,122,10);
else if (nombre% 3 == 0)
System.out.format("%c%c%c%c%c",70,105,122,122,10);
else if (nombre% 5 == 0)
System.out.format("%c%c%c%c%c",66,117,122,122,10);
else
System.out.format("%d%c",nombre,10);
}
}
}
f Je l'utilise pour, si et pour formater. J'ai changé le format pour imprimer et l'ai remplacé par un tableau de caractères. car c'est tout. si utilisé, changez comme une instruction if J'écris un incrément parce que j'utilise continuer au lieu de else. Changer la valeur initiale séparément
Fiz Buzz.java
classe Fiz Buzz{
public static void main(String[]argument) {
nombre int=0;
while (nombre< 20) {
nombre++;
switch(nombre% 15){
case 0:
System.out.print(new char[] {70,105,122,122,66,117,122,122,10});
continue;
}
switch(nombre% 3){
case 0:
System.out.print(new char[] {70,105,122,122,10});
continue;
}
switch(nombre% 5){
case 0:
System.out.print(new char[] {66,117,122,122,10});
continue;
}
System.out.print(nombre+"\n");
}
}
}
l Je l'ai utilisé avec else et println. Celui ci-dessus ne les utilise pas, mais je les ai utilisés pendant, donc je peux le changer en for. Puisqu'il est également utilisé en public, changez-le en interface.
Fiz Buzz.java
interface Fiz Buzz{
static void main(String[]argument) {
for(nombre int=1;nombre<= 20;nombre++) {
switch(nombre% 15){
case 0:
System.out.print(new char[] {70,105,122,122,66,117,122,122,10});
continue;
}
switch(nombre% 3){
case 0:
System.out.print(new char[] {70,105,122,122,10});
continue;
}
switch(nombre% 5){
case 0:
System.out.print(new char[] {66,117,122,122,10});
continue;
}
System.out.print(nombre+"\n");
}
}
}
uy Comment remplacer s [y] stem.o [u] t par le même ScriptEngine que la dernière fois. Puisqu'elle est également en B [u] zz, la chaîne de caractères est un tableau de caractères.
Fiz Buzz.java
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
interface Fiz Buzz{
static void main(String[]argument) throws Exception{
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = (ScriptEngine)manager.getClass()
.getMethod("getEngineB"+(char)121+"Name", String.class).invoke(manager, "javascript");
for (nombre int=1;nombre<= 20;nombre++) {
if (nombre% 15 == 0)
engine.eval("print('"+new String(new char[] {70,105,122,122,66,117,122,122})+"')");
else if (nombre% 3 == 0)
engine.eval("print('"+new String(new char[] {70,105,122,122})+"')");
else if (nombre% 5 == 0)
engine.eval("print('"+new String(new char[] {66,117,122,122})+"')");
else
engine.eval("print('"+nombre+"')");
}
}
}
acdgimnorstv Parce que static void main (argument String []) est absolument nécessaire.
e Comme uy, c'est dans Syst [e] m.out, et c'est aussi dans Script [E] ngin [e]. Même si vous essayez de l'obtenir à partir d'une chaîne de caractères, il se trouve dans g [e] tClass. Même si ce n'est pas le cas, c'est un alphabet assez facile à utiliser, donc il se fait généralement prendre.
De ce qui précède Possible: bfhjklpquwxyz Impossible: acdegimnorstv Sera. Le résultat était le même que la dernière fois. Ce n'était pas si intéressant. Après tout, la partie déclaration de class ou main doit être ignorée. J'ai pensé, mais ensuite je devrais le faire avec python.
Recommended Posts