000
22.11.2010, 18:15 Uhr
~xy25
Gast
|
Hallo,
Soll in C++ eine Ackermann-Funktion und die maximale Rekursionstiefe sowie die Gesamtanzahl der Aufrufe der Funktion schreiben. Ackermann-Funktion ist kein Problem Versuche gerade die Rekursionstiefe und die Aufrufe. Hab aber keine Ahnung ob das so stimmt oder wie ich das sonst machen sollte. Vielleicht kann mir hier jemand helfen. Danke
C++: |
#include <iostream> using namespace std;
static int AnzahlAufrufe=0; static int rektiefe=0; static int maxrektiefe=0;
int A(int n, int m) {
rektiefe=rektiefe+1; AnzahlAufrufe=AnzahlAufrufe+1; if(rektiefe>maxrektiefe){ maxrektiefe = rektiefe; }
if (n==0) { return m+1; }
else if (m==0) { return A((n-1),1); } else {
return A (n - 1, (A(n, (m - 1)))); } rektiefe=rektiefe-1; return maxrektiefe; }
int main () { int n, m; cout << "Bitte n eingeben: "; cin >> n; cout << "Bitte m eingeben:"; cin >> m;
cout << "A(" << n << "," << m << ") = " << A(n,m) << endl; cout << "maximale Rekursionstiefe=" << rektiefe << endl;
return 0; }
|
Dieser Post wurde am 22.11.2010 um 21:45 Uhr von FloSoft editiert. |