Visualizzazione dei risultati da 1 a 10 su 19

Hybrid View

  1. #1
    ok ma il return che avevo messo serviva a restituire "conta" che mi è stato detto essere inutile...

  2. #2
    fatto... ma non mi è del tutto chiaro:
    codice:
    class NumeroDiCifre
    {
        public static int QuanteCifre(int numero)
        {   
            if(numero>1)
            {  numero=numero/10;
                return 1+QuanteCifre(numero);
            }else
                return 0;
        }
        
        
        public static void main(String[] args)
        {    int numero,n;
            System.out.print("Inserisci il numero: ");
            numero=SavitchIn.readLineInt();
            n=QuanteCifre(numero);
            System.out.print("Ha "+n+" cifra/e");
        }
    }
    Ultima modifica di mastodilu; 08-01-2015 a 12:19

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da mastodilu Visualizza il messaggio
    ok ma il return che avevo messo serviva a restituire "conta" che mi è stato detto essere inutile...
    Sì, è inutile.
    L'ho detto nella prima risposta ma lo posso ripetere meglio: se il numero è maggiore (o diverso se vuoi gestire anche i negativi) di zero, allora dovrai restituire un 1 fisso più il valore fornito dalla invocazione ricorsiva in cui passi il numero diviso 10.
    Altrimenti se è zero, restituisci 0.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    se il numero è maggiore (o diverso se vuoi gestire anche i negativi) di zero, allora dovrai restituire un 1 fisso più il valore fornito dalla invocazione ricorsiva in cui passi il numero diviso 10.
    Altrimenti se è zero, restituisci 0.[/QUOTE]
    così?
    codice:
        public static int QuanteCifre(int numero)
        {
            if(numero>0)
            {   numero=numero/10;
                return 1+QuanteCifre(numero);
            }else
                return 0;
        }
    funziona ma non capisco perchè
    Ultima modifica di mastodilu; 08-01-2015 a 12:18

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da mastodilu Visualizza il messaggio
    così?
    Sì. Puoi anche passare alla invocazione ricorsiva direttamente il risultato della divisione, invece di aggiornare 'numero'. Ma comunque è ok.

    Quote Originariamente inviata da mastodilu Visualizza il messaggio
    funziona ma non capisco perchè
    Es. 1234

    codice:
    QuanteCifre(1234): 1234 maggiore di 0, quindi 1 + QuanteCifre(123)
       QuanteCifre(123): 123 maggiore di 0, quindi 1 + QuanteCifre(12)
          QuanteCifre(12): 12 maggiore di 0, quindi 1 + QuanteCifre(1)
             QuanteCifre(1): 1 maggiore di 0, quindi 1 + QuanteCifre(0)
                QuanteCifre(0): zero, quindi 0

    Quanti "1" vengono sommati?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.