jueves, 11 de diciembre de 2014

Buscar un número en un array

package busquedaenarray;
import java.util.Scanner;
import java.util.Arrays;
import java.util.Random;
/**
*
* @author juan
*/
public class BusquedaEnArray {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Random al = new Random();

Ejercicio 69: Calcular el máximo común divisor de dos números mediante el método de Euclídes

/*
* 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 ejercicio69;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejercicio69 {

miércoles, 10 de diciembre de 2014

Leer 10 notas usando arrays y calcular la media y la nota mayor

package notasymayorconarrays;
import java.util.Scanner;
/**
*
* @author juan
*/
public class NotasYMayorConArrays {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner leer = new Scanner(System.in);
        int [] notas= new int[10];
        int total, media, mayor;

Empezando con arrays

package explicacionarray;
import java.util.Scanner;
/**
*
* @author juan
*/
public class ExplicacionArray {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int [] unArray;
        int [] otroArray = new int[20];
        int lon=10;
        Scanner leer = new Scanner(System.in);
       
 

viernes, 5 de diciembre de 2014

Último dígito del factorial (acepta el reto 114

Ultimo dígito del factorial

Tiempo máximo: 3,000 s  Memoria máxima: 4096 KiB
Tu primo Luis, de 12 años, está aprendiendo a usar la calculadora. Su profesor le ha dicho que calcule el factorial de varios números. Pero, para evitar que le tengan que copiar números muy largos en el cuaderno, les ha pedido únicamente el último dígito, el de más a la derecha.
Recordando que el factorial es la multiplicación de todos los números entre el número y el uno (por ejemplo, el factorial de 8, escrito 8!, es 8 · 7 · 6 · 5 · 4 · 3 · 2 · 1), demuestra a tu primo Luis que tú eres capaz de hacerlo mucho más rápido que él.

Entrada

El programa recibirá en la primera línea de la entrada el número de casos de prueba. A continuación, cada caso de prueba estará compuesto de una única línea que contendrá un número (positivo).

Salida

Por cada caso de prueba n, se mostrará el último dígito (el de la derecha) de su factorial, n!.

Entrada de ejemplo

3
2
3
4

Salida de ejemplo

2
6
4

jueves, 4 de diciembre de 2014

Explicación cadenas

package buscarunapalabra;
import java.util.Scanner;
/**
*
* @author juan
*/
public class BuscarunaPalabra {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner leer = new Scanner(System.in);
        boolean encontrada=false;
        int pos=0,cont,coinciden=0;
        String cadena, buscada;
       
        System.out.println("Introduzca la cadena a buscar");
        cadena= leer.nextLine();
       
        System.out.println("Introduzca palabra: ");
        buscada= leer.nextLine();
       
        cont=0;
        while (!encontrada && cont <= (cadena.length()-buscada.length()))
        {
            if (cadena.charAt(cont)==buscada.charAt(0))
            {
   

lunes, 1 de diciembre de 2014

Ejercicio 46

Autor: Miguel Ángel Romero
  package ejer46;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejer46 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner leer = new Scanner(System.in);
        int num;

        do {
            System.out.println("Introduzca un número por teclado entre 3 y 10:");
            num = leer.nextInt();

        } while (num < 3 || num > 15 || num % 2 == 0);

        for (int i = 1; i < num; i = i + 2) {

            for (int k = i; k < num; k = k + 2) {
                System.out.print(" ");
            }
            for (int j = 0; j < i; j++) {
               
                if (j == 0 || j == i - 1) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }


miércoles, 26 de noviembre de 2014

3n + 1 (uva 100)

Los problemas en informática se clasifican a menudo de acuerdo a un cierto tipo (p.e. irresolubles, recursivos, imposibles,...). En este problema analizareis una propiedad de un algoritmo cuya clasificación no es conocida para todas las posibles entradas.

El Problema:

Considera el siguiente algoritmo
1. input n

2. print n

3. if n = 1 then STOP

4. if n is odd then tex2html_wrap_inline44

5. else tex2html_wrap_inline46

6. GOTO 2


Dada como entrada el número 22, se imprimirían la siguiente secuencia de números 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

Se supone que el algoritmo anterior terminará (cuando se imprime un uno) para cualquier valor entero. A pesar de la simplicidad del algoritmo, se desconoce si la suposición/conjetura es cierta. Ha sido verificada, sin embargo, para todos los enteros n tales que 0

Dada una entrada n, es posible detrerminar el número de números impresos (incluyendo al uno). Para un número n se le llama longitud de ciclo n. En el ejemplo superior, la longitud de ciclo de 22 es 16.
Para cualesquiera números i y j tienes que determinar la longitud de ciclo para todos los números entre i y j.


La entrada.

Consistirá en un par de enteros i y j, un par de enteros por línea. Todos los enteros menores que 1000000 y mayores que cero.

Debes procesar todos los pares de enteros y determinar el ciclo de longitud máxima comprendida entre esos dos valores incluyendo i y j.

Ppuedes asumir  que no habrá operaciones mayores que enteros de 32 bits.

La salida.

Para cada par de enteros i y j debes mostrar i, j y la máxima longitud de ciclo para los enteros comprendidos e incluyendo i y j. Estos tres números se mostrarán separados por un espacio, uno por  línea. Los enteros i y j deben aparecer en el mismo orden que aparecen en la entrada y deben ir seguidos de la longitud de ciclo máxima (en la misma línea.

Sample Input

1 10
100 200
201 210
900 1000

Sample Output

1 10 20
100 200 125
201 210 89
900 1000 174



Explicación y solución: serverfault.com/questions/40156/puppet-force-service-restart-after-configuration-file-was-modified package pkg3nmas1;
import java.util.Scanner;

/**
*
* @author juan
*/
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
    
        Scanner leer = new Scanner(System.in);
        int num1,num2,mayor,menor,maximo;
        while (leer.hasNextInt()) {
            num1=leer.nextInt();
            num2=leer.nextInt();
            menor=Math.min(num2, num1);
            mayor=Math.max(num2, num1);
        
            maximo=0;
            for (int i = menor; i <=mayor; i++) {
                maximo= Math.max(maximo, cuentaSaltos(i));
            }
            System.out.println(num1+ " " + num2 + " " + maximo);
        
        
        }