jueves, 22 de diciembre de 2011

Problema B: Número Profundo UNMSM-FISI 2011

Concurso de Programación UNMSM-FISI 2011

Problema B: Número Profundo

Descargar problema: UNMSM-FISI 2011 Problema B

import java.io.*;

public class ProblemaB
{
    public static void main( String args[] ) throws Exception
    {
        int numero, cantNumeros, indice, producto, copia;

        // Permitira leer los datos de entrada
        BufferedReader br = new BufferedReader( new InputStreamReader(
            System.in ) );

        // Cantidad de casos que se analizaran
        cantNumeros = Integer.parseInt( br.readLine() );

        for( int i = 0; i < cantNumeros; i ++ )
        {
            numero = Integer.parseInt( br.readLine() );
            indice = 0;

            // Seguimos procesando el numero mientras tenga mas de 1 digito
            while( numero > 9 )
            {
                producto = 1;
                copia = numero;

                // Cada producto parcial se multiplica por el digito de la derecha
                while( copia > 0 )
                {
                    producto = producto * ( copia % 10 );
        
                    // Eliminamos el digito más a la derecha
                    copia = copia / 10;
                }

                // Actualizamos el numero
                numero = producto;

                indice ++;
            }

            System.out.println( "Caso #" + (i+1) + ": " + indice );
        }
    }
}

No hay comentarios:

Publicar un comentario