Non c'è una una risposta a che tu stia meglio con una ricorsione, loop, chiamate con più funzioni, ...
Ma ci sono alcuni suggerimenti:
-
la profondità di ricorsione può essere limitata dalla dimensione dello stack di chiamate (dipende dalla lingua). Un valore che viene visualizzato è un massimo di 1024.
-
se la struttura dati è ricorsiva, ad esempio un albero binario, la ricorsione è il tuo amico.
-
metti il tuo problema in parole: "e poi lo stesso per l'elemento successivo" = > iterazione; "e poi lo stesso per il resto" = > ricorsione.
-
se hai bisogno di memorizzare valori intermedi, è più semplice farlo con l'iterazione.
-
se il tuo problema è intrinsecamente auto-simile, vai con la ricorsione.
Commento finale: tutti i problemi possono essere risolti sia dall'iterazione che dalla ricorsione. È un buon esercizio implementare entrambi. Osserva, che ti ha portato più tempo, che scorre più veloce, che utilizza meno memoria, che è parallelizzabile? E, cosa più importante: quale è stato più divertente da implementare?