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());
}
}
Mostrando entradas con la etiqueta 100. Mostrar todas las entradas
Mostrando entradas con la etiqueta 100. Mostrar todas las entradas
miércoles, 4 de febrero de 2015
Solución 100 - El problema 3n + 1
package The_3n_problem;
import java.util.Scanner;
public class The_3n_1_problem {
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
int mayor, num1, num2, max, min;
do {
mayor = 0;
num1 = leer.nextInt();
num2 = leer.nextInt();
if (num1 > num2) {
max = num1;
min = num2;
} else {
max = num2;
min = num1;
}
for (int i = min; i <= max; i++) {
if (get3n(i) > mayor) {
mayor = get3n(i);
}
}
System.out.println(num1 + " " + num2 + " " + mayor);
} while (leer.hasNext());
}
100 - El problema 3n + 1
El problema 3n + 1
Trasfondo
Los problemas en ciencias computacionales son siempre
clasificados según pertenezcan a ciertas clases de problemas (por ejemplo, NP,
Irresolvibles, Recursivos). En este problema tendrás que analizar las
propiedades de un algoritmo cuya clasificación no es conocida por todas las
posibles entradas.
El Problema
Considerando el siguiente algoritmo:
1.
Entrada n
2.
Imprime n
3.
Si n = 1 entonces PARA
4.
Si n es impar entonces n ß 3n + 1
5.
Si no n ß
n/2
6.
Volver al paso 2
Suscribirse a:
Entradas (Atom)