Teilbarkeit

Oneixee5

Top Contributor
Die Teilbarkeit kann man mit dem Module-Operator testen:

Java:
public class LeapYearUtil {
    /**
     * Prüft, ob das angegebene Jahr ein Schaltjahr ist.
     * @param year Das zu prüfende Jahr
     * @return true, wenn Schaltjahr, sonst false
     */
    public static boolean isLeapYear(int year) {
        return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
    }
}

Module ermittelt den Restwert einer Division, ist dieser gleich 0 dann ist die Zahle ohne Rest teilbar.
 

mihe7

Top Contributor
Man könnte sich auch Gedanken machen, wie man das ohne Restwertoperator (aka Modulo-Operator, wobei diese Bezeichnung in Java nicht ganz der mathematischen Definition entspricht) bewerkstelligen kann. Dazu überlegt man sich einfach, was "Teilbarkeit" bedeutet. Ein ganzzahliger Teiler t teilt eine ganzzahlige Zahl z offensichtlich genau dann, wenn z ein ganzzahliges Vielfaches von t ist. Es gibt also ein ganzzahliges x, so dass z = x * t gilt. In dem Fall gilt auch x = z / t (wäre t kein Teiler von z, dann wäre z / t keine ganze Zahl).

Man könnte den Test also selbst implementieren:
Java:
// prüft, ob z durch t teilbar ist
public boolean teilbar(int z, int t) {
    int x = z / t; // ganzzahlige Division ohne Rest
    return x * t == z;
    // oder als Einzeiler
    // return (z / t) * t == z;
}
 

Ähnliche Java Themen

Neue Themen


Oben