Buenas noches, estoy tratando de calcular la raiz digital de un numero partiendo la cadena con un substring, de que manera puedo reducir varias veces el resultado almacenado en un vector hasta que el la sumatoria de los digitos sea menor a 9... *************** este metodo me divide la cadena y hace la sumatoria*********************** public void calcular(View view) { int suma = 0; int i = 0; int numero = Integer.parseInt(txtValor.getText().toString()); String cadena = Integer.toString(numero); //Llevo los digitos a una varible String cadena y luego lo convierto nuevamnete a numero para poder realizar operaciones con ellos. int[] digitos = new int[cadena.length()]; //Declaro vector digitos y lo lleno con lo que viene de la variable cadena como entero. for (i = 0; i < cadena.length(); i++) { //Recorro el vector y lo lleno con los digitos convertidos a numeros en cada una de las posiciones digitos[i] = Integer.parseInt(cadena.substring(i, i + 1));// llevo a digitos lo que tenga cadena y divido a cadena en digitos aparte ya convertidos a numeros. suma += digitos[i]; }
Buenas noches, estoy tratando de calcular la raiz digital de un numero partiendo la cadena con un substring, de que manera puedo reducir varias veces el resultado almacenado en un vector hasta que el la sumatoria de los digitos sea menor a 9...
*************** este metodo me divide la cadena y hace la sumatoria***********************
public void calcular(View view) {
int suma = 0;
int i = 0;
int numero = Integer.parseInt(txtValor.getText().toString());
String cadena = Integer.toString(numero); //Llevo los digitos a una varible String cadena y luego lo convierto nuevamnete a numero para poder realizar operaciones con ellos.
int[] digitos = new int[cadena.length()]; //Declaro vector digitos y lo lleno con lo que viene de la variable cadena como entero.
for (i = 0; i < cadena.length(); i++) { //Recorro el vector y lo lleno con los digitos convertidos a numeros en cada una de las posiciones
digitos[i] = Integer.parseInt(cadena.substring(i, i + 1));// llevo a digitos lo que tenga cadena y divido a cadena en digitos aparte ya convertidos a numeros.
suma += digitos[i];
}
txtResultado.setText(Integer.toString(suma));
}