Gegeben seien folgende drei Funktionsdefinitionen (x und z seien ganze Zahlen):
-
$$m_1(x,0)= x$$ $$ m_1(0,z) = z$$ $$m_1(x,z) = m_1(x+1, z-1)$$
-
$$m_2(x,0) = x$$ $$m_2(0,z) = 0$$ $$m_2(x,z)= m_2(x-1, z-1)$$
-
$$m_3(0,z) = 0$$ $$ m_3(x,z) = m_1(m_3(x-1, z),z)$$
Implementieren Sie die Funktion rekursiv in Java.
Überlegen Sie sich, für welche Eingaben die Funktionen nicht terminieren und prüfen diese durch ein
assert am Anfang der Methode ab.
package de.hsrm.cs.ads;
public class Mystery {
static int m1(int x,int z){
}
static int m2(int x,int z){
}
static int m3(int x,int z){
}
}