Piccolo esercizio di ricorsione

di il
2 risposte

Piccolo esercizio di ricorsione

Innanzi tutto essendo il primo post colgo l'occasione per salutare tutti e per ringraziarvi anticipatamente per l'aiuto che potrete darmi .

Adesso veniamo al mio problema, molto stupido ma che mi sta mettendo in crisi
Scrivere un metodo che calcoli ricorsivamente la somma delle cifre di un numero.

es numero 234 somma 9.
La mia idea era prendo il numero lo divido per 10 con una divisione intera, prendo lo stesso numero lo divido per 10 con una divisione che ammette la virgola, li sottraggo trovando il decimale, moltiplicarlo per 10 in modo tale da avere un numero e poterlo sommare.
234/10=23 intero
234/10 = 23,4
23,4-23=0,4
',4 *10 = 4.

Il fatto è che mi sembra una soluzione assolutamente stupida ma al momento non mi viene in mente altro

Avete un suggerimento?

Ps non posso usare un array altrimenti avrei fatto in un secondo

Grazie a tutti

2 Risposte

  • Re: Piccolo esercizio di ricorsione

    aless89 ha scritto:


    La mia idea era prendo il numero lo divido per 10 con una divisione intera, prendo lo stesso numero lo divido per 10 con una divisione che ammette la virgola, li sottraggo trovando il decimale, moltiplicarlo per 10 in modo tale da avere un numero e poterlo sommare.
    No, non serve assolutamente usare valori floating-point, cifre decimali, ecc...

    Devi "ragionare" nei termini della ricorsione. Alla prima invocazione "base" del metodo, passi 234. Dentro il metodo devi invocare ricorsivamente sé stesso .... cosa potresti passare? Ad esempio potresti passare 23 e ti tieni a questo livello il resto 4. Quando il metodo ricorsivo ritorna, avrai una somma delle cifre parziale (ovvero solo di 2+3), a cui aggiungi 4.
    Pensa in questo senso.
  • Re: Piccolo esercizio di ricorsione

    Provo così grazie mille!!!!
Devi accedere o registrarti per scrivere nel forum
2 risposte