Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Donner le Nb d'appel

3 réponses
Avatar
Julien Laurent
Bonjour,
Je travaille sur la fonction d'Ackermann
(voir ci dessous)
Je veux trouver le nombre d'appel de cette fonction.
pour 2 entiers saisis au clavier.
Comment faire ??
--------------------------------------
static int ack(int m, int n)
{ if (m == 0)
return n + 1;
else
if (n == 0)
return ack (m - 1, 1);
else
return ack (m - 1, ack (m, n - 1));
}
--------------------------------------

3 réponses

Avatar
Francis JUGE-BOIRARD
Julien Laurent wrote:
Bonjour,
Par le biais d'un compteur global.
A noter, si plusieurs appel sont fait à ack durant le programme, il faut
penser à réinitialiser le compteur. Dans le cas contraire, il
additionnera les différents appels.


public class Ackerman
{
public static void main(String[] args)
{
ack (2, 3);
System.out.println ("Nombre d'appel : " + count);
}

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

// Compteur global pour le nombre d'appel.
static int count = 0;
}
Avatar
Dominique MARIE
jerome moliere wrote:

--------------------------------------
static int ack(int m, int n)
{ if (m == 0)
return n + 1;
else
if (n == 0)
return ack (m - 1, 1);
else
return ack (m - 1, ack (m, n - 1));
}
--------------------------------------
le plus propre (pour ne pas polluer ton code) consisterait en

l'utilisation d'un proxy chargé d'incrémenter ce compteur....
cf javadoc pour les détails sur le Design Pattern Proxy et
l'implémentation en Java....


si tu regardes bien il utilise une fonction static, alors le pattern du
proxy... je crois qu'il cherche à faire du procédural, pas de l'objet mais
peut-être me gouréje :-)


Avatar
Nicolas Delsaux
Le 15.07 2003, Dominique MARIE
s'est levé(e) et s'est
dit "tiens, je vais écrire aux mecs de fr.comp.lang.java"

si tu regardes bien il utilise une fonction static, alors le pattern
du proxy... je crois qu'il cherche à faire du procédural, pas de
l'objet mais peut-être me gouréje :-)

Boarf, en utilisant la classe Proxy, ça marchera sans problème.

Mais personnellement, j'irais pas tout de suite jouer avec ce genre de
choses ...

--
Nicolas Delsaux
"Dans l'espace, personne ne vous entend crier"
Alien, le 8ème passager