Java - programa para cambiar de base

   
Vista:

programa para cambiar de base

Publicado por ruben (1 intervención) el 07/02/2009 16:28:30
Hola chic@s. Doy nuevo en el foro, y en programación, os queria exponer un ejercicio que no entiendo muy bien lo que hace:

22.-Haz un programa Java que reciba como entrada un número decimal y como salida escriba el resultado de pasar a binario ese número, usando recursividad para hacer el cambio de base.
• Se divide el número por 2, y se guarda el resto.
• Se divide el cociente por 2 y se guarda el resto.
• Se sigue así sucesivamente hasta que se obtiene de cociente 1, en cuyo caso se escribe 1.
• Se escriben todos los restos obtenidos en orden inverso a como se han obtenido.

el profesor nos pone esta solución:

import java.util.*;

public class CambioBase {
public static void main(String[] args) {

int N;

Scanner Leer = new Scanner (System.in);

System.out.println (" Introducir número entero para convertir en binario");
N = Leer.nextInt();
convertir (N);

}
public static void convertir (int N){
int cociente, resto;
resto = N%2;
cociente = N/2;
if (cociente >1){
convertir (cociente);
System.out.println (resto);}
else{
if (cociente ==1){
System.out.println (1);
System.out.println (resto);}}
}
}

cuando se vuelve a llamar a convertir() despues de comprobar que el cociente no es 1, ¿que pasa con el resto que tenía antes? si hay que mostrarlo en orden inverso a como se han obtenido, no entiendo como salen asi cuando el primer System.out los va mostrando segun los va obteniendo, y luego cuando el cociente es igual a 1, escribe el uno, ¿pero ese no deberia ser el primero?... no se, la verdad es que estoy bloquedo... he hecho algoritmos mas complejos pero este no lo entiendo.

Gracias. Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder