Tenho dois métodos que calculam o fatorial de um número. Ambos retornam o mesmo resultado. Mas qual será o mais claro de se entender? O com recursividade ou sem recursividade? Eu achei mais claro o sem recursividade.
public static int fatorial1(int valor){ // Sem recursividade
int num = 1;
for ( ; valor>0; valor–){
num *=valor;
}
return num;
}
public static int fatorial(int valor){ // com recursividade
if (valor==1 || valor==0){
return 1;
} else {
int num = valor;
num *=fatorial(valor-1);
return num;
}
}
Mas, na minha opinião e nestes exemplos (