Hier ist die Frage: Eine ganze Zahl ist definiert als eine gerade Untermenge einer anderen ganzen Zahl n, wenn jeder gerade Faktor von m auch ein Faktor von n ist. Zum Beispiel 18 eine gerade Teilmenge von 12, weil die auch Faktoren von 18 2 und 6, und diese sind beide Faktoren von 12. Aber 18 ist nicht eine gerade Teilmenge von 32, da 6 nicht ein Faktor von 32.isEvenSubset kam nicht zurück 1
Dies ist eine Beispielfrage einer Universität. Die Frage lautet explizit: Keine zusätzlichen Datenstrukturen einschließlich Arrays zulässig - bitte beachten Sie dies auch bei der Antwort. Vielen Dank.
Hier ist meine Antwort Code:
public class IsEvenSubset {
public static void main(String[] args) {
System.out.println(isEvenSubset(18,12));
}
private static int isEvenSubset(int m, int n){
for(int i=2;i<=m;i++){
int count=0;//reset count in each round
if(m%2==0 && m%i==0){
for(int j=2;j<=n;j++){
if(n%2==0 && n%j==0){
if(i==j)count++;
}
}
if(count==0)return 0;
}
}
return 1;
}
}
Dieser Code nicht wie gewünscht funktionieren. Bitte helfen Sie mir herauszufinden, wo ich falsch gemacht habe?
Warum gibt es ein 'int' zurück? Sollte es nicht ein 'boolean' sein? m ist oder ist keine gerade Teilmenge von n. – Sweeper
@Sweeper Wahrscheinlich weil die Frage zuerst in einem C-Kurs verwendet wurde, dann minimal an Java angepasst. –