Rekursion und Multiplikation
Ist das möglich Jungs? Das ist Hausaufgaben, die ich habe, und mein Lehrer, der offensichtlich glaubt, dass es ist, aber es scheint mir, dass es unmöglich ist, nicht zu verwenden, addition oder Multiplikation, die außerhalb des kurz-Multiplikation-Methode.
Schreiben (und bieten einen tester für) einen rekursiven Algorithmus:
int multiplizieren(int x, int y)
multiplizieren von zwei positiven ganzen zahlen zusammen, ohne die Verwendung von *
Betreiber. Nicht nur hinzufügen, dass x sich y mal!!!!!(Tipp: Schreiben Sie eine rekursive Methode, mit der man multipliziert eine ganze Zahl durch eine
Wert im Bereich von 0 .. 10. Schreiben Sie dann eine zweite rekursive Methode
implementieren Sie den Algorithmus zur Matrixmultiplikation Sie gelernt, sich zu vermehren
mehrstellige zahlen in der Grundschule.)
Mein Problem ist, dass, wenn Sie brechen alle multi-stellige Nummer und starten das hinzufügen dieser zusammen, verwenden Sie die Multiplikation von zahlen größer als 10, ich.e 22 * 6 2 * 6 + 20 * 6 ... so bin ich Total fehlt etwas?
BEARBEITEN
Ich glaube, ich sollte Hinzugefügt haben, ist dies der code, den ich habe,
public int mult(int x, int y){
return x == 0 ? 0 : (mult(x-1, y) + y);
}
perfekt ist, aber soweit verstehe ich die Anleitung, dass das brechen nicht nur hinzufügen, dass x sich y mal. Ich persönlich glaube es nicht, aber mein Lehrer war nicht sehr klar, und ich würde gerne wissen, ob es irgendeine andere Möglichkeit, die ich noch nicht gedacht, sorry für die Verwirrung.
- Es ist sehr gut möglich. Was haben Sie versucht?
- Bitte aktualisieren Sie dies, wenn der Lehrer hatte eine andere Lösung, dann die gegebene rekursive Funktionen.
- Ich werde, es wird ein paar Tage dauern, aber da es nicht wirklich aufgrund der bis zu diesem Abend.
- noch havn ' T erhielt Antwort, incase jemand wissen will
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine interpretation der Zuordnung ist, dass die Lehrerin möchte die Schüler zur Implementierung eines rekursiven Algorithmus ausführen Grid-Methode der Multiplikation (die Art, wie wir lernen in der Grundschule).
Beispielsweise die Multiplikation 34 x 13 erfolgen würde, wie so...
Ich nicht haben einfachen Zugang zu einer Java-Entwicklungsumgebung, also schrieb ich den code in C#, aber der Algorithmus sollte einfach genug, um zu konvertieren in Java.
HINWEISE:
*
Betreiber aber nicht für die eigentliche Multiplikationx
undy
es wird verwendet, um zu erhöhen, andere sub-Produkte mit einem vielfachen von 10*
Betreiber und theprivate-Methode weiterhin verwendet der Algorithmus, den Sie kam schon mit), aber es scheint am nächsten zu dem, was der Lehrer nach.Ja, es ist möglich. Ja, ich glaube, du bist etwas fehlt. Schreiben Sie hinunter die Schritte, die Sie Folgen würden, um manuell multiplizieren von zwei zahlen, die Art, wie Sie schon in der Grundschule gelernt.
Dann schalten Sie diese Schritte in code.
Natürlich können Sie es tun.
Zuerst von all, denken Sie über den Zustand. Wenn eine Zahl 0 ist, dann ist das Ergebnis? Richtig.. null.
So.. Sie haben
if x is zero or y is zero return 0
Nun.. sagen X * Y ist wie gesagt "X -, Y-mal", das ist wie beim schreiben: X + .... + X (Y mal).
Also musst du so etwas wie:
Müssen Sie berücksichtigen den Fall, in dem eine der zahlen negativ ist (Aber wenn Sie verstehen, die grundlegende, ich glaube, Sie können ganz einfach tun es).
Problemlos möglich.
Oben nicht zu berücksichtigen für den Fall, wo y negativ ist, aber Sie würde nicht wollen, mich zu tun, alle Ihre arbeiten für Sie . . .
Diese Lösung funktioniert für beide, wenn y>=0 und y<0
Do not just add x to itself y times
?Do not just add x to itself y times
?