El Problema:
Considera el siguiente algoritmo1. 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);
}