Dla tych, którzy nie wiedzą, FizzBuzz jest następujący problem:FizzBuzz bez Operator AND
Napisz program, który drukuje numery od 1 do 100. Ale dla wielokrotności trzech print „Fizz” zamiast liczby i dla wielokrotności pięciu wydruków "Buzz". Dla liczb, które są wielokrotnościami , zarówno trzy jak i pięć drukują "FizzBuzz".
rozwiązanie Każdy FizzBuzz znajdę to albo jakiś szalony ezoteryczne rozwiązanie wykonane przez wzgląd na oryginalności, lub swojej podstawowej if-else łańcucha:
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);
}
}
szukam proste rozwiązanie, które ma na celu wyciągnij "FizzBuzz", jeśli oświadczenie. Mam to na uwadze:
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);
}
Ale to nie działa. Zakładam, że byłby on w stanie wydrukować FizzBuzz, wpisując oba ifs, dla Fizz i Buzz, ale jeśli liczba jest na przykład 3, to wydrukowałby Fizz3. Jak tego uniknąć?
Ponieważ powinno to być "else if" zamiast twojego drugiego wyrażenia 'if';) –
@ThomasJungblut Nie, ponieważ wtedy sprawa FizzBuzz nie będzie działać. –
@ThomasJungblut, Nie chce połączyć Fizz i Buzza razem, więc celowo opuszcza pierwsze, jeśli. – Igor