Bonjour,
Je dois programmer une méthode d'une classe qui utilise la récurrence mais dont l'appel utilise également une variable qui ne sera pas modifiée d'appel en appel. Je voudrais savoir quelle est la règle d'écriture la plus propre à adopter.
Plus simplement, par exemple, si je veux calculer la fonction qui a " n " associe " n ! + m ", dans une classe MonMath, je dois écrire :
Code :
- MonMath::mafactorielle(int n,int m)
- {
- if (n==0)
- return (1+ m);
- else
- return (mafactorielle(n-1,m);
- }
|
Ce qui me gène, dans mon cas qui est plus complexe que celui présenté ici, c'est que la variable " m " peut être grande en taille mémoire et que son utilisation systématique peut être lourde à gérer. Je voudrais donc savoir comment se ramener à une écriture plus propre en terme de récurrence, du type :
Code :
- MonMath::mafactorielle(int n)
- {
- if (n==0)
- return (1 + m);
- else
- return (mafactorielle(n-1);
- }
|
Est-ce que, dans cette situation, il vaut mieux définr la variable m comme une variable globale ou comme une variable statique. Dans les deux, cas, elle restera visible dans la méthode, avec une valeur qui lui aura été affectée avant le premier appel à mafactorielle. Ce qui me gêne dans la première écriture, c'est le transport, dans l'ensemble des appels sucessifs d'une variable m qui ne se révèle utilse que à la fin, lors de l'ultime appel.
Est-ce que vous pourriez ainsi me conseiller une règle d'écriture propre ?
Merci d'avance de votre aide,
NathanGe