Per coloro che non conoscono, FizzBuzz è il seguente problema:FizzBuzz senza operatore AND
Scrivere un programma che stampa i numeri da 1 a 100. Ma per multipli di tre di stampa "Fizz", invece del numero e per i multipli di cinque caratteri "Buzz". Per i numeri che sono multipli di entrambi i numeri tre e cinque stampano "FizzBuzz".
soluzione Ogni FizzBuzz trovo è o qualche soluzione esoterica folle fatta per il gusto di essere originale, o la vostra base else if-chain:
for(int i = 1; i <= 100; i++) {
if(i % 3 == 0 && i % 5 == 0) {
System.out.println("FizzBuzz");
} else if (i % 3 == 0) {
System.out.println("Fizz");
} else if (i % 5 == 0) {
System.out.println("Buzz");
} else {
System.out.println(i);
}
}
Sto cercando una soluzione semplice che si propone di estrarre la dichiarazione "FizzBuzz". Ho questo in mente:
for(int i = 1; i <= 100; i++) {
if (i % 3 == 0)
System.out.print("Fizz");
if (i % 5 == 0)
System.out.println("Buzz")
else
System.out.println(i);
}
Ma questo non funziona. Immagino che sarebbe in grado di stampare FizzBuzz inserendo ifs, Fizz e Buzz, ma se il numero è, ad esempio, 3, stamperebbe Fizz3. Come posso evitare questo?
Perché dovrebbe essere "else if" invece della seconda istruzione "if";) –
@ThomasJungblut No, perché quindi il caso FizzBuzz non funzionerà necessariamente. –
@ThomasJungblut, No, vuole mettere insieme il Fizz e il Buzz, quindi lascia intenzionalmente il primo se. – Igor