Merci pour vos aide je vais regarder de plus près tou ce ke vous m'avais mis
encore merci
Cordialement
Arnaud
Merci pour vos aide je vais regarder de plus près tou ce ke vous m'avais mis
encore merci
Cordialement
Arnaud

ah j'ai trouvé pourquoi ca donne un assembly douteux! koala tu as une petite faute dans ton programme dans la version recursive, il faut soit que tu rajoutes return nb*fac(n-1) ou bien nb *= fac(n-1) car sinon tu as une instruction qui ne fait rien au milieu
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog

mais c'est quoi du coup l'assembleur correspondant ?
quoi qu'il en soit je vois que visual C++ ne genere pas des fonctions iteratives sur ces exemples :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 int factorielle_recursive1(int value) { 10001000 push esi if(value > 1) 10001001 mov esi,dword ptr [esp+8] 10001005 cmp esi,1 10001008 jle factorielle_recursive1+1Bh (1000101Bh) value *= factorielle_recursive1(value-1); 1000100A lea eax,[esi-1] 1000100D push eax 1000100E call factorielle_recursive1 (10001000h) 10001013 add esp,4 10001016 imul eax,esi 10001019 pop esi } 1000101A ret
Partager