Thursday, January 05, 2012

Solucion a 10018 - Reverse and Add [http://uva.onlinejudge.org] con Java

Solucion a 10018 - Reverse and Add [http://uva.onlinejudge.org] con Java
El enunciado esta en el siguiente link enunciado

import java.util.Scanner;

/**
 * 10018 - Reverse and Add [http://uva.onlinejudge.org]
 * 
 * @author BreakDark
 * @version 1.0 beta
 */
// ACEPTADO!!! xD
public class Main {
 public static void main(String[] args) {
  Scanner Lee; // para leer los datos de entrada
  int N; // el numero de casos de prueba
  long num1, num2; // para verificar si es palindrome
  int numIteraciones; // para contar las iteraciones

  // AQUI INICIA EL PROGRAMA
  Lee = new Scanner(System.in);
  N = Lee.nextInt();
  while (N-- > 0) {
   numIteraciones = 0;
   num1 = Lee.nextLong();
   num2 = invertir(num1);
   while (num1 != num2) {
    num1 += num2;
    num2 = invertir(num1);
    numIteraciones++;
   }
   System.out.println(numIteraciones + " " + num1);
  }
 }

 /**
  * Funcion que invierte los dogitos de un numero
  * 
  * @param num
  *            el numero a invertir
  * @return el numero ya invertido
  */
 private static long invertir(long num) {
  String anterior = Long.toString(num);
  String nuevoNum = "";
  for (int i = anterior.length() - 1; i >= 0; i--)
   nuevoNum += anterior.charAt(i);
  return Long.parseLong(nuevoNum);
 }
}

No comments: