Hallo an alle Progger!
Ich soll ein Programm schreiben....
Schreiben Sie ein Java-Programm, welches die sehr schnell wachsende Ackermann-Funktion
berechnet. Die Ackermann-Funktion ist folgendermaßen definiert:
ack(0,m) = m+1
ack(n+1,0) = ack(n,1)
ack(n+1,m+1) = ack(n, ack(n+1,m))
Ok das habe ich getan. Siehe unten....
Unser Übungsleiter meinte wenn man den befehl "Heap" einfügt dann hebt dieser die Begrenzung des Wertebereiches auf.
Leider bin ich noch am Anfang meiner Progger Karriere...und weiß leider nicht so richtig wie man das anstellt
Hat jemand eine Idee oder kann sogar weiterhelfen?
*danke*
/**
* @version 1.0
* @author mark
* @date 08.11.2005
* @package dssz.io.*
*
* Schreiben Sie ein Java-Programm, welches die sehr schnell wachsende Ackermann-Funktion
* berechnet. Die Ackermann-Funktion ist folgendermaßen definiert:
* ack(0,m) = m+1
* ack(n+1,0) = ack(n,1)
* ack(n+1,m+1) = ack(n, ack(n+1,m))
*/
import dssz.io.*;
public class Acker
{
//Programm zur Berechnung von ackermann
public static long ack (long n, long m )
{
//if
if ( n == 0 )
return m + 1;
else
if ( m == 0 )
return ack( n - 1, 1 );
else
return ack( n - 1, ack(n, m - 1) );
}//end if
//Unterprogramm zum Einlesen und Ausgeben
public static void main( String args[] )
{
// Vereinbarungen
stdin in=new stdin();
// Variablen werden deklariert
int x, y;
// Varibale x wird eingelesen
x = stdin.getInt("Geben Sie die erste Zahl ein : ");
// Variable y wird eingelesen
y = stdin.getInt("Geben Sie jetzt die zweite Zahl ein : ");
//Ausgabe
System.out.println( "ack(" + x + "," + y + ")=" + ack(x,y) );
}//end main
}//end class
Ich soll ein Programm schreiben....
Schreiben Sie ein Java-Programm, welches die sehr schnell wachsende Ackermann-Funktion
berechnet. Die Ackermann-Funktion ist folgendermaßen definiert:
ack(0,m) = m+1
ack(n+1,0) = ack(n,1)
ack(n+1,m+1) = ack(n, ack(n+1,m))
Ok das habe ich getan. Siehe unten....
Unser Übungsleiter meinte wenn man den befehl "Heap" einfügt dann hebt dieser die Begrenzung des Wertebereiches auf.
Leider bin ich noch am Anfang meiner Progger Karriere...und weiß leider nicht so richtig wie man das anstellt
Hat jemand eine Idee oder kann sogar weiterhelfen?
*danke*
/**
* @version 1.0
* @author mark
* @date 08.11.2005
* @package dssz.io.*
*
* Schreiben Sie ein Java-Programm, welches die sehr schnell wachsende Ackermann-Funktion
* berechnet. Die Ackermann-Funktion ist folgendermaßen definiert:
* ack(0,m) = m+1
* ack(n+1,0) = ack(n,1)
* ack(n+1,m+1) = ack(n, ack(n+1,m))
*/
import dssz.io.*;
public class Acker
{
//Programm zur Berechnung von ackermann
public static long ack (long n, long m )
{
//if
if ( n == 0 )
return m + 1;
else
if ( m == 0 )
return ack( n - 1, 1 );
else
return ack( n - 1, ack(n, m - 1) );
}//end if
//Unterprogramm zum Einlesen und Ausgeben
public static void main( String args[] )
{
// Vereinbarungen
stdin in=new stdin();
// Variablen werden deklariert
int x, y;
// Varibale x wird eingelesen
x = stdin.getInt("Geben Sie die erste Zahl ein : ");
// Variable y wird eingelesen
y = stdin.getInt("Geben Sie jetzt die zweite Zahl ein : ");
//Ausgabe
System.out.println( "ack(" + x + "," + y + ")=" + ack(x,y) );
}//end main
}//end class