|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 112
|
[ANY] Funzione ricorsiva la cui iterazione è definibile a compile time.
Servirebbe praticamente sapere, anche in uno pseudocodice qualunque, qual'è l'idea di fondo che porta a scrivere una funzione ricorsiva che termina però ad un dato evento GESTIBILE a compile-time. Sono a corto di idee...
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Ad esempio?
Non so, uno dei criteri interni alla funzione potrebbe fare uso di una costante, definita e cambiabile appunto a compile time?
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 112
|
Per esempio, dopo 10 volte che ha richiamato se stessa, ritorna, e tutto ciò lo "leggi" tra le righe del codice... E' un esercizio, ma non vorrei che nasconda scheletri nell'armadio... com'è la tua idea di costante? potrebbe essere una chiave...
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Codice:
const int NumRec = 10;
int SumTreeNotTooDeep(Node head)
{
return SumTreeNotTooDeep(head, 0);
}
int SumTreeNotTooDeep(Node node, int level)
{
if (level>=NumRec)
return 0;
int ret=0;
Node left = node.Left;
if (left !=null)
ret = SumTreeNotTooDeep(left, level+1);
Node right = node.Right;
if (right != null)
ret += SumTreeNotTooDeep(right , level+1);
return ret;
}
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:23.




















