vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 2010
-
19 mars 2006 à 16:26
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013
-
19 mars 2006 à 19:19
Bonjour tout le monde
Je me demandais s'il existait une méthode générale pour enlever la récursivité d'une fonction (même si elle devient plus lente, il faut juste enlever l'appel récursif).
La fonction en question ressemble à ca:
int f(int x, int y)
{
...
return f(x1, y1)+f(x2, y2)+f(x3, y3);
}
Petite précision: pas le droit au goto
Pensez-vous que c'est possible?
ctx_man
Messages postés285Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention20 janvier 20133 19 mars 2006 à 17:07
Salut !
Generallement j'arrive a me passer de la recursiviter avec un bon paquet de boucle, des conditions suplementaires et un petit paquet de variable pour stocker les resultats intermediaires.
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 19 mars 2006 à 19:19
C'est bien la récursivité, même si difficile à debugger, malgré cela, il existe de mémoire non pas une méthode générale, mais un ensemble de méthode bien défini permettant de virer la récursivité dans certains cas (utilisation de boucle infini, de goto meme si tu n'en veux pas, ....)
Au fait pourquoi tu ne veux pas de goto ?
Coté code machine ca sera un simple jmp, et pas plus compliqué a debugger que la récursivité.