- Napisz program, który wypisuje liczby od 1 do 100. Ale dla wielokrotności trójki wyświetl "Fizz" zamiast
liczby oraz dla wielokrotności piątki wyświetl "Buzz". Dla liczb będących wielokrotnościami trójki oraz
piątki wyświetl "FizzBuzz".
public void multiple() {
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0) {
System.out.println("Fizz");
if (i % 5 == 0) {
System.out.println("FizzBuzz");
}
} else if (i % 5 == 0) {
System.out.println("Buzz");
} else {
System.out.println(i);
}
}
}
w odpowiedzi dostałem : "nadmiarowe modulo"
Co zrobiłem nie tak ?
- Napisz funkcję sprawdzającą poprawność daty w latach 2001-2099 (daty spoza tego okresu uznaj za
niepoprawne).
Wejście – trzy parametry liczbowe (dzień, miesiąc, rok).
Wyjście – parametr logiczny (true – data poprawna, false – data niepoprawna) .
Proszę zaimplementować własny algorytm kontroli – nie wolno korzystać z gotowych rozwiązań, np.
LocalDate, Calendar, itp.
public class CorrectDate {
public boolean correctDate() {
Scanner in = new Scanner(System.in);
System.out.println("Dzień:");
int day = in.nextInt();
System.out.println("Miesiąc:");
int month = in.nextInt();
System.out.println("Rok:");
int year = in.nextInt();
boolean clearDate = false;
if (year >= 2001 && year <= 2099) {
switch (month) {
case 1, 3, 5, 7, 8, 10, 12: {
if (day <= 31 && day > 0) {
clearDate = true;
break;
}
}
case 2: {
boolean february = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
if (day <= 28 && day > 0 && !february) {
clearDate = true;
break;
}
if (day <= 29 && day > 0 && february) {
clearDate = true;
break;
}
break;
}
case 4, 6, 9, 11: {
if (day <= 30 && day > 0) {
clearDate = true;
break;
}
}
default: {
clearDate = false;
}
}
}
System.out.println(clearDate);
return clearDate;
}
}
W odpowiedzi dostałem: "parametry przyjmowane niezgodnie z treścią zadania. Kod proceduralny"
Jak powinienem rozwiązać inaczej te zadania ?