Java - Ayuda en recursividad

 
Vista:
sin imagen de perfil
Val: 41
Ha disminuido su posición en 11 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda en recursividad

Publicado por Yasar (9 intervenciones) el 29/10/2020 06:21:08
Hola, necesito ayuda en este programa de recursividad ya que no hace bien la comparación.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import java.io.IOException;
import java.util.Scanner;
 
public class ProgramarUnAlgoritmoRecursivoQueMuestreElNumeroMenorDeUnVector {
 
     public static int menorvec(int x [], int n, int menor) {
 
        if (n == 0) {
            if (menor > x [n]) {
                return x [0];
            }
            else {
                return menor;
            }
}
        else{
            if (menor > x [0]) {
                return menorvec(x, n - 1, x [n]);
}
     else {
                return menorvec (x, n - 1, menor);
            }
        }
}
 
    public static void main(String[] args) throws IOException{
 
     Scanner scanner = new Scanner(System.in);
 
                                            int[] arreglo = null;
		int menor;
		int tamano = 0;
		int resultado = 0;
 
 
        System.out.println("Ingrese el tamaño del arreglo: ");
		tamano = scanner.nextInt();
		arreglo = new int[tamano];
 
		for(int i = 0; i < tamano; i++) {
			System.out.println("Ingrese el elemento numero " + (i + 0) + " :");
			arreglo[i] = scanner.nextInt();
		}
		menor = arreglo[0];
		resultado = menorvec(arreglo, tamano, menor);
		System.out.println("El elemento menor de este vector es " + resultado);
	}
 
}


Sin-titulo
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
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda en recursividad

Publicado por Billy Joel (875 intervenciones) el 29/10/2020 17:17:23
Tuve que debugear para poder visualizar lo que pasaba.
Y solo hice unos pequeños cambios muy puntuales:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.io.IOException;
import java.util.Scanner;
 
public class ProgramarUnAlgoritmoRecursivoQueMuestreElNumeroMenorDeUnVector {
 
    public static int menorvec(int x[], int n, int menor) {
        if (n == 0) {
            if (menor > x[n]) {
                return x[0];
            } else {
                return menor;
            }
        } else {
            if (x[n] < menor) {
                return menorvec(x, n - 1, x[n]);
            } else {
                return menorvec(x, n - 1, menor);
            }
        }
    }
 
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        int[] arreglo;
        int menor;
        int tamano;
        int resultado;
        System.out.println("Ingrese el tamaño del arreglo: ");
        tamano = scanner.nextInt();
        arreglo = new int[tamano];
        for (int i = 0; i < tamano; i++) {
            System.out.print("Ingrese el elemento numero " + (i + 1) + " :");
            arreglo[i] = scanner.nextInt();
        }
        menor = arreglo[0];
        resultado = menorvec(arreglo, arreglo.length - 1, menor);
        System.out.println("El elemento menor de este vector es " + resultado);
    }
}

El cambio que hice fue comprar el menor por el valodr del indice que se mueve (n)
Lo dejo en negrita y subrayado.

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar