public class Multiplikation_Rekursiv { // Iterativ: // while( a > 0) { // ergebnis = ergebnis + b; // Oder: ergebnis += b; // a = a - 1; // Oder: a--; static int multi(int x, int y) { // return x*y; // Wäre Komplexität O(1) if(y == 1) return x; return x + multi(x, y-1); } public static void main(String[] args) { int a = Eingabe.readInt("Bitte erste Zahl eingeben: "), b = Eingabe.readInt("Bitte zweite Zahl eingeben: "); int ergebnis = 0; // Siehe Skizze! System.out.print("Ergebnis " + a + " * " + b + " = "); // Vorzeichen von b beachten! if(b < 0) { a = -a; b = -b; // Durch Umdrehen BEIDER Vorzeichen bleibt Ergebnis gleich. } System.out.println( multi(a,b) ); // ergebnis rekursiv berechnen und ausgeben } }