Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Ackermann Funktion Rekursionstiefe

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.12.2010, 16:42 Uhr
Dobi



Hi ~xy25,

sieht doch gut aus. maxrektiefe und AnzahlAufrufe werden korrekt ermittelt.
Da deine Zählvariablen nicht innerhalb der Funktion deklariert sind, brauchst du sie übrigens nicht statisch setzen.
Anders könntest du es z.B. machen, indem du die Variablen innerhalb der Funktion deklarierst (dann natürlich statisch), oder indem du sie per Referenz als Parameter mit übergibst.
Noch ein kleiner Tip: Wenn du richtig einrückst, wird der Code (auch für dich) besser lesbar.

Gruß
Dobi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.12.2010, 07:44 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


nein das statisch setzen macht schon sinn, dadurch sind die 3 variablen nur innerhalb des moduls (d.h der c++-datei) sichtbar. Schließlich gilt: Sichtbarkeit soweit einschränken wies nur geht.

ich denke schaut das soweit eigentlich sehr gut aus (evtl die code-einrückung noch vernünftig, dann kann mans besser lesen)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.12.2010, 10:07 Uhr
Dobi



Oh, wieder was gelernt. thx
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: