Überprüfen Sie, ob die Ganzzahl sich wiederholende Ziffern enthält. Keine Stringmethoden oder Arrays

Ich versuche zu sehen, ob ein Int ein Vielfaches der gleichen Ziffer hat. Der Versuch, es ohne String-Methoden oder Arrays zu tun. Die Hauptmethode, mit der ich Probleme habe, isthasDistinctDigits(). Es funktioniert, wenn die sich wiederholenden Ziffern am Ende sind, aber nicht, wenn sie am Anfang oder in der Mitte stehen.

public static void main(String[] args) {
    System.out.println(hasDistinctDigits(12234));
}

public static boolean hasDistinctDigits(int number) {
    boolean returner = true;
    int count = 1;
    int newNum = number;
    int digit = 0;

    while (count < numDigits(number)) {         
        while (count < numDigits(newNum)) {
            digit = newNum % 10;
            newNum/=10;
            if (digit == getDigit(newNum, count)) {
                returner = false;
            }
            count++;                
        }
        count++;
    }
    return returner;
}

public static int numDigits(int number) {
    int count = 0;
    while (number != 0) {
        number /= 10;
        count++;
    }
    return count;
}

public static int getDigit(int number, int i) {
    int digit = 0;
    int count = 0;
    int originalNum = number;

    while (count <= i) {
        if (count == i) {
            digit = number % 10;
        }
        number /= 10;
        count++;
    }
    if (i > numDigits(originalNum)) {
        return -1;
    } else {
        return digit;
    }
}

}

Wenn dies ausgeführt wird, wird "2" angezeigt, die Methode wird jedoch weiterhin als @ ausgewertetrue wann sollte es seinfalse.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage