Bonsoir à tous,

J'ai un petit problème avec les fonctions récursives pour lesquelles je dois faire un exercice :
Ecrire une fonction Fortran 90, récursive, qui calcule la factorielle d'un nombre entier N passé comme argument.
Pour cela j'ai écrit une fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
recursive function factorielle(n) result (facto)
implicit none 
integer, intent (in) :: n
integer :: facto
 
IF(n.eq.0 .OR. n.eq.1) then
facto=1
ELSE
DO
facto=n*factorielle(n-1)
END DO
ENDIF
END FUNCTION
Et lorsque je veux la tester avec un programme, ça foire rien ne se passe, j'ai l'impression que le problème vient de programme appelant que voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
program factotest
implicit none
integer::n,factorielle,facto
 
n=6
facto=factorielle(n)
 
print *, facto
 
end program

Quelqu'un pourrait-il éclairer ma lanterne ? ^^

Merci d'avance !