[JAVA]
Salve a tutti, mi sono iscritto poco fa perchè ho un problema con un esercizio che proprio non riesco a fare:
(usando un metodo ricorsivo) devo restituire il numero di cifre di cui è composto un intero positivo o negativo.
sapendo che n=SavitchIn.readLineInt(); acquisisce il numero intero e lo salva nella variabile n
questo è quello che ho fatto:
codice:
class NumeroDiCifre
{
public static int QuanteCifre(int n,int conta)
{ if(n>0)
{ n=n/10;
conta++;
System.out.println(conta);
QuanteCifre(n,conta);
}
return conta;
}
public static void main(String[] args)
{ int numero,numero_cifre;
System.out.print("Inserisci il numero: ");
numero = SavitchIn.readLineInt();
if(numero<0) //valore assoluto del numero
numero=numero*(-1);
numero_cifre = QuanteCifre(numero,0);
System.out.println(numero+" ha "+numero_cifre+" cifre.");
}
}
ma, essendo il metodo ricorsivo, il risultato è al contrario di quello che volevo, infatti da terminale risulta:Inserisci il numero: 1234
1
2
3
4
1234 ha 1 cifre. |
PS: all'interno del metodo ricorsivo ho aggiunto (come debug per capire che succedeva) la stampa del valore di "conta" e la conta è corretta... come faccio a risolvere però quel problema??? 
grazie in anticipo