Skip to content

Instantly share code, notes, and snippets.

@heckenmann
Created February 24, 2015 18:23
Show Gist options
  • Save heckenmann/137c9aa6202af837a120 to your computer and use it in GitHub Desktop.
Save heckenmann/137c9aa6202af837a120 to your computer and use it in GitHub Desktop.
Ackermann-Funktion
class AckermannFunktion {
public static void main(String[] args) {
int n = args.length > 0 ? Integer.parseInt(args[0]) : 1;
System.out.println(ack(n,n));
}
// Hier beginnt die eigentliche Funktion
public static int ack(int n, int m){
if (n == 0) {
return m + 1;
} else if (m == 0) {
return ack(n-1, 1);
} else {
return ack(n-1, ack(n,m-1));
}
}
}
// Ackermannfunktion (z. T. iterativ)
class AckermannFunktionIterativ {
public static void main(String[] args) {
int n = args.length > 0 ? Integer.parseInt(args[0]) : 1;
System.out.println(ack(n,n));
}
// Hier beginnt die eigentliche Funktion
public static int ack(int n, int m){
while (n != 0) {
if(m == 0){
m = 1;
} else {
m = ack(n, m - 1);
}
n = n - 1;
}
return m + 1;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment