R007 T3rm1n4d0
Friday, August 7, 2009 4:17:40 PM
Bueno este es otro de los problemas de entrenamiento que hemos seleccionado para ir recordando algo de métodos y pues para ir formando un Standard en la forma de programar de nuestro equipo..seguro se darán cuenta que de forma recursiva es mucho mas fácil, pero en este momento no hemos tocado ese tema aun, tan solo hacernos mas mañosos en el manejo de Sting.
Este problema es muy sencillo, se traba de tomar un numero separar sus dígitos y sumarlos..si el resultado es un numero de una cifra, se imprime, pero si es de mas de 1 cifra, se divide y se suma nuevamente, así sucesivamente.
Este problema es muy sencillo, se traba de tomar un numero separar sus dígitos y sumarlos..si el resultado es un numero de una cifra, se imprime, pero si es de mas de 1 cifra, se divide y se suma nuevamente, así sucesivamente.
public class Root {
private Vector numeros= new Vector();
public static void main(String[] args) throws Exception {
Root r= new Root();
r.leer();
r.metodoRaiz();
}
public void leer() throws Exception{
File f = new File( "root.in" );
BufferedReader entrada = new BufferedReader( new FileReader( f ) );
String linea;
while ((linea= entrada.readLine()) !=null) {
numeros.addElement(linea);
}
}
public void metodoRaiz(){
for (int i = 0; i < numeros.size(); i++) {
String numero=(String) numeros.get(i);
int arrEnteros[]=convertir(numero);
calcular(arrEnteros);
}
}
private void calcular(int[] arrEnteros) {
String resultado="10";
int raiz=0;
while(resultado.length()!=1){
raiz=0;
for (int i =0; i < arrEnteros.length; i++) {
raiz= raiz+ arrEnteros[i];
}
resultado= String.valueOf(raiz);
arrEnteros=convertir(resultado);
}
if (Integer.parseInt(resultado)!=0) {
System.out.println(resultado);
}
}
public int [] convertir(String numero){
char raiz [] = numero.toCharArray();
int convertir[]=new int [raiz.length];
for (int i = 0; i < raiz.length; i++) {
String num=String.valueOf(raiz[i]);
convertir[i]=Integer.parseInt(num);
}
return convertir;
}
}






