Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110

    Metodo ricorsivo che conti il numero di cifre dispari in un numero

    Ciao a tutti,
    dovrei fare un metodo ricorsivo che conti il numero di cifre dispare.
    Ho abbozzato il codice ma non capisco come gestire la ricorsione.
    Nello specifico:
    - genera un loop infinito
    - ogni volta che richiama il metodo mi re-inizializza la variabile somma (inizializzata all'interno del metodo) e quindi la somma mi risulta uguale a 0;

    Avevo posto un ciclo while (numero>0) ma il loop continuava ugualmente.
    Come posso fare?
    Grazie

    codice:
    import java.util.Scanner;
    
    
    public class RecursionDemo {
        
    public static void contaDispari(int numero){
        Scanner tastiera = new Scanner(System.in);
        int somma=0;
        int ultimacifra;
        
       
            ultimacifra = numero%10;
            System.out.println(ultimacifra);
            
            {
                if((ultimacifra%2)!=0)
                {
                    somma++;
                }
                
                //contaDispari(numero/10);
                
            }
            
         
        System.out.println("La somma è: " + somma);
        }
        
        
        
    
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            int numero=0;
            
            Scanner tastiera = new Scanner(System.in); 
            
            System.out.println("Inserisci un numero");
            numero = tastiera.nextInt();
            
            
            contaDispari(numero);
        }
    
    
    }

  2. #2
    Io farei una cosa del genere:
    codice:
    public int contaDispari(int num)
    {
        return (num == 0) ? 0 : (num % 2) + contaDispari(num/10);
    }

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.