Desde la función principal tendrás que crear un array e introducir a mano los números de los que queremos calcular el máximo común divisor, y a continuación tendrás que hacer una llamada a la función creada para finalmente imprimir por pantalla el resultado.
Ejemplo:
Lista de numeros:[12, 6, 18, 24]
Máximo cómun divisor: 6
Lista de numeros:[4, 8, 30, 124]
Máximo cómun divisor: 2
Máximo cómun divisor: 6
Lista de numeros:[4, 8, 30, 124]
Máximo cómun divisor: 2
SOLUCIÓN EN JAVA:
package mdc_arrays;
import java.util.Arrays;
public class MDC_Arrays {
static int mcd(int[] lista){
int i,menor;
boolean no_es_mcd=false,probar_siguiente=true;
//Primero obtengo el menor número del array porque empezaremos
//a probar a dividir por él hacia abajo
menor=lista[0];
for (i=1;i < lista.length;i++){
if (lista[i] < menor){
menor=lista[i];
}
}
//Ya tengo en la variable "menor" el menor número del array
while (probar_siguiente==true){
//Ahora tengo que comprobar si "menor" es divisible por todos los números del array
for (i=0;i < lista.length && no_es_mcd==false;i++){
if (lista[i]%menor!=0)
no_es_mcd=true;
}
//Si no lo es, tendré que probar con el siguiente número, que será menor-1
if (no_es_mcd){
menor--;
no_es_mcd=false;
} else{
//En caso de que todos los números sean divisible por menor,
//salgo del bucle principal while pq ya he encontrado el mcd
probar_siguiente=false;
}
}
return menor;
}
public static void main(String[] args) {
int[] numeros={4,8,30,124};
System.out.println("Lista de numeros:"+Arrays.toString(numeros));
System.out.println("Máximo cómun divisor: "+mcd(numeros));
}
}
muy bn
ResponderEliminargenial
ResponderEliminarsi fuera por numeros ingresados por el usuario?
ResponderEliminar