Quote Originariamente inviata da mastodilu Visualizza il messaggio
codice:
    public static int QuanteCifre(int n,int conta)
    {   if(n>0)
        {   n=n/10;
            conta++;
            System.out.println(conta);
            QuanteCifre(n,conta);
        }
        return conta;
    }
Sappi innanzitutto che per il metodo ricorsivo non serve che riceva quel 'conta'! È sufficiente che riceve il valore da esaminare e basta.

Devi ragionare più in senso ricorsivo e un esempio potrebbe chiarirti:

Invochi direttamente il metodo passando es. 6789. Dato che è maggiore di 0, restituirai 1 + quello che ti fornisce la invocazione ricorsiva. La prima invocazione ricorsiva la fai passando 678 (il valore diviso 10). In questa invocazione il valore è maggiore di 0, quindi restituirai 1 + quello che ti fornisce la invocazione ricorsiva. Ecc....