Mostrando entradas con la etiqueta Amanda. Mostrar todas las entradas
Mostrando entradas con la etiqueta Amanda. Mostrar todas las entradas

miércoles, 4 de febrero de 2015

solucion 100 El problema 3n+1

public class UVA100_3nMAS1 {

    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        int a, b, cont, max = 0, num, inicio, fin;
        do {
            a = entrada.nextInt();
            b = entrada.nextInt();
            inicio = Math.min(a, b);
            fin = Math.max(a, b);
            for (int i = inicio; i <= fin; i++) {
                cont = 1;
                num = i;
                while (num != 1) {
                    if (num % 2 == 0) {
                        num /= 2;
                    } else {
                        num = num * 3 + 1;
                    }
                    cont++;
                }
                max = Math.max(max, cont);
            }
        System.out.printf("%d %d %d%n", a, b, max);
        max = 0;
        } while (entrada.hasNext());
    }
}

miércoles, 21 de enero de 2015

Solución 10019 Metodo de encriptación invertida

import java.util.Scanner;

/**
 *
 * @author dam101
 */
public class metodoencriptacion10019 {

    public static void main(String[] args) {
        Scanner leer = new Scanner(System.in);
        int numero, cant, num, cont1, cont2;
        int[] hex = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2};
/*este array esla cantidad de unos en los 10 primeros numeros de la conversion de hexadecimal a binario.*/
        cant = leer.nextInt();
        for (int i = 0; i < cant; i++) {
            numero = leer.nextInt();
            num = numero;
            cont1 = 0;
            cont2 = 0;
            while (num >= 1) {
                if (num % 2 == 1) {
                    cont1++;
                }
                num /= 2;
            }
            String cadena = Integer.toString(numero);
            for (int j = 0; j < cadena.length(); j++) {
                cont2 += hex[Character.getNumericValue(cadena.charAt(j))];
            }
        System.out.println(cont1+" "+cont2);
        }
    }
}

SOLUCIONADO : Amanda y Santiago

Solucion 1585 Puntuacion

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package UVA;

import java.util.Scanner;

/**
 *
 * @author dam116
 */
public class UVA1585_Puntuacion {

    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        String cadena;
        int valor = 1, num, nota = 0;
        num = entrada.nextInt();
        for (int i = 0; i < num; i++) {
            cadena = entrada.next();
            for (int j = 0; j < cadena.length(); j++) {
                if (cadena.charAt(j) == 'O') {
                    nota += valor;
                    valor++;
                }else{
                    valor = 1;
                }
            }
            System.out.println(nota);
            nota = 0;
            valor = 1;
        }
    }
}
Solucionado por Santiago y Amanda

domingo, 18 de enero de 2015

Solucion 737 Gleaming the Cubes

import java.util.Scanner;

/**
 *
 * @author DAM101
 */
public class UVA737_GleamingTheCubes {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        int resultado, numCubos, d, x, y, z, inicioX, inicioY, inicioZ, finX, finY, finZ;
        numCubos = entrada.nextInt();
        while (numCubos > 0) {
            inicioX = entrada.nextInt();
            inicioY = entrada.nextInt();
            inicioZ = entrada.nextInt();
            d = entrada.nextInt();
            finX = inicioX + d;
            finY = inicioY + d;
            finZ = inicioZ + d;
            for (int i = 1; i < numCubos; i++) {
                x = entrada.nextInt();
                y = entrada.nextInt();
                z = entrada.nextInt();
                d = entrada.nextInt();
                inicioX = Math.max(inicioX, x);
                inicioY = Math.max(inicioY, y);
                inicioZ = Math.max(inicioZ, z);
                finX = Math.min(finX, x + d);
                finY = Math.min(finY, y + d);
                finZ = Math.min(finZ, z + d);
            }
            resultado = Math.max(0, (finX - inicioX) * (finY - inicioY) * (finZ - inicioZ));
            System.out.println(resultado);
            numCubos = entrada.nextInt();
        }
    }
}

viernes, 16 de enero de 2015

Solucion 138 Numeros Calles

O tempo de ejecucion de este ejercicio e demasiado largo, tendo o ejercicio un limite de 3 segundos. Aproximamos que a division entre o numero de casas da calle (segundo numero) entre o numero da vivienda (primer numero) partida de 0.75 e tendia a 0.70. Unha vez calculados os numeros podense imprimir e a UVA acepta a solucion.


package programame1;

public class UVA138_numerosCalles_PRINT {

    public static void main(String[] args) {
//%10d imprime o numero en un margen de 10 espacios á izquierda (como pedia o ejercicio).
        System.out.printf("%10d%10d%n", 6, 8);
        System.out.printf("%10d%10d%n", 35, 49);
        System.out.printf("%10d%10d%n", 204, 288);
        System.out.printf("%10d%10d%n", 1189, 1681);
        System.out.printf("%10d%10d%n", 6930, 9800);
        System.out.printf("%10d%10d%n", 40391, 57121);
        System.out.printf("%10d%10d%n", 235416, 332928);
        System.out.printf("%10d%10d%n", 1372105, 1940449);
        System.out.printf("%10d%10d%n", 7997214, 11309768);
        System.out.printf("%10d%10d%n", 46611179, 65918161);
    }
}







FORMA DE CALCULALO

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package UVA;

public class UVA138_numerosCalles {

    public static void main(String[] args) {
        int cant = 0, casasCalle = 1, sumaIzq, sumaDer;
        boolean correcto;
        while (cant <= 10) {
            correcto = false;
            while (!correcto) {
                for (int i = (casasCalle*70/100); i < (casasCalle*75/100); i++) {
                    sumaIzq = sumaNumeros(i - 1, 1);
                    sumaDer = sumaNumeros(i + 1, casasCalle);
                    if (sumaIzq == sumaDer) {
                        correcto = true;
                        cant++;
                        enseñaNumeros(i, casasCalle);
                    }
                }
                casasCalle++;
            }
        }
    }

    public static int sumaNumeros(int inicio, int fin) {
        int suma = 0, mayor, menor;
        mayor = Math.max(inicio, fin);
        menor = Math.min(inicio, fin);
        for (int i = menor; i <= mayor; i++) {
            suma += i;
        }
        return suma;
    }

    public static void enseñaNumeros(int casa, int calle) {
        System.out.printf("%10d%10d%n", casa, calle);
    }
}


lunes, 12 de enero de 2015

138 Numeros de calle

Un programador de ordenadores vive en una calle con casas numeradas consecutivamente que empiezan en el numero 1 por un lado de la calle. Todas las noche ella anda con su perro sobre salir de su casa, girar a un lado al azar, caminar hasta el final de la calle y volver. Una noche ella suma los números de las calles por las que ella pasa, excluyendo la suya. La próxima vez ella anda en la otra dirección haciendo lo mismo y descubre, para su asombro, que las dos sumas dan lo mismo. Esto esta determinado en parte por el numero de su casa y en parte por el numero de viviendas en la calle. Sin embargo, es un detalle que le gusta y decide que todas sus casas posteriores deben compartirlo.

Escribe un programa que busque pares de números que satisfagan esta condición. Para empezar tu lista, los primeros pares de números son: (numero de casa, ultimo numero)

         6         8
        35        49

ENTRADA Y SALIDA

No hay una entrada para el programa. La salida consiste en 10 líneas que contengan pares de números, cada uno contenido en un espacio de 10 caracteres, como se muestra arriba


TRADUCTORES: Amanda Álvarez  y Santiago Gómez.