Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Rekurzivne funkcije

[es] :: C/C++ programiranje :: Rekurzivne funkcije

[ Pregleda: 1764 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

programiranje

Član broj: 161572
Poruke: 3
*.donbosco.sth.ac.at.



Profil

icon Rekurzivne funkcije29.11.2008. u 23:09 - pre 187 meseci
#include<iostream>
using namespace std;


int j=0;

int ack(int n, int m){

::j+=1;


if (n == 0)
{
return (m + 1);
}
else if (m == 0)
{
return ack((n - 1), 1);
}
else
{
return ack(n - 1, (ack(n, (m - 1))));
}
}

int main () {
int h=0;
int m;
int n;
char wiederholen='w';


do {

cout<<" Geben sie Wert n ein: ";
cin>> n;
cout<<" Geben sie Wert m ein: ";
cin>> m;

if (n==0 && m==0)
{
cout<<" Es ist ein Fehler aufgetreten! "<<endl;
}

else
{
cout<< "Das Ergebnis fuer Ackerman-Funktion ist: "<< ack(n,m) <<endl;
cout<< "Die Ackermann-Funktion wurde " << j-h << " Mal aufgerufen! "<<endl;
cout<< "Maximale Tiefe ist: "<< <<endl;
}

h=j;
cout<<"Fuer die Wiederholung des Programms druecken Sie w ! ";
cin>>wiederholen;

} while ( wiederholen=='w');

return 0;
}



I trebam dobiti ovdje je maksimalnu dubinu rekurzije.... npr ovako da bude:


kod ack( 2, 2 ) gibt es:
Rezultat: 7
Maksimalna dubina: 7
Broj prozivanja: 27

kod ac( 2, 3 )
Rezultat: 9
Maksimalna dubina: 9
Broj prozivanja: 44

kod ac( 3, 4 )
Rezultat: 125
Maksimalna dubina: 126
Broj prozivanja: 10307


sa ovim programom dobijem rezultat i broj pozivanja ali kako mogu dobiti i dubinu ne znam... zna li neko kako se to moze?

 
Odgovor na temu

[es] :: C/C++ programiranje :: Rekurzivne funkcije

[ Pregleda: 1764 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.