Merci pour vos aide je vais regarder de plus près tou ce ke vous m'avais mis
encore merci
Cordialement
Arnaud
Version imprimable
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
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:
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