Die Frage lautet so: Schreiben Sie eine rekursive Funktion, die zwei positive int-Arrays und ihre Größen erhält. Die Funktion gibt 0 zurück, wenn mindestens ein gemeinsames Objekt vorhanden ist, und 1, wenn es nicht ein gemeinsames Objekt gibt.Finden, ob zwei Arrays gemeinsame Nummern mit Rekursion haben
int disjoint(int a[], int n1, int b[], int n2)
Die Anforderungen sind wie folgt:
- keine Hilfsfunktionen
- keine Schleifen
- nicht das Array
- nur Rekursion
das ich habe, zur Zeit ändernden Probleme um alle Kombinationen für com zu bekommen mit anderen Worten, wie man verschachtelte Schleifen in Rekursion übersetzt.
Update diese funktioniert, aber es unnötige Wiederholungen macht.
int disjoint(int g1[], int n1 , int g2[], int n2){
if(g1[0]==g2[0])return 0;
if(n2-1>0&&n1-1>=0){
return disjoint(g1+1,n1-1,g2,n2)*disjoint(g1,n1,g2+1,n2-1);
}
return 1;
}
@PaulR nur hinzugefügt, danke –
Das Posten des Codes, in dem "zurzeit Probleme haben, alle Kombinationen zum Vergleich zu erhalten ..." würde helfen, Ihr Ziel/Problem zu klären. – chux
Es wäre sinnvoller, wenn die Signatur "int disjoint" (const int a [], int n1, const int b [], int n2) 'wäre und dann" no changing the array "ablegen würde. – chux