public class Test1 { public static void testVampiro(int d1, int d2, int d3, int d4) { // Este método recibe cuatro dígitos y verifica en todas las posibles parejas de números // si la multiplicación de dos de ellas es igual a alguno de los números que se generan // con los 4 dígitos int[] v = { d1, d2, d3, d4 } ; // Se crea un vector con los 4 dígitos leídos int[] posibles = new int[24] ; // Con 4 dígitos solo se pueden formar 24 posibles valores int cont = 0; int a,b,c; boolean haySolucion = false; for(int i=0; i<v.length; i++) { for(int j=0; j<v.length; j++) { if(v[i]==v[j]) continue; // No se pueden repetir for(int k=0; k<v.length; k++) { if(v[k]==v[i]||v[k]==v[j]) continue; // No se puede repetir for(int l=0; l<v.length; l++) { if(v[l]==v[i]||v[l]==v[j]|| v[l]==v[k]) continue; // No se puede repetir posibles[cont++] = v[i]*1000+v[j]*100+v[k]*10+v[l]; } // fin for l } // fin for k } // fin for j } // fin for i // Para probar los numeros posibles usar esta instrucción: // for(int x: posibles) System.out.println(x); // Para generar las parejas se hace el siguiente ciclo: ciclo: for(int i=0; i<v.length; i++) { for(int j=0; j<v.length; j++) { if(v[i]==v[j]) continue; // No se pueden repetir a = v[i]*10 + v[j]; // Se obtiene el primer valor de dos dígitos for(int k=0; k<v.length; k++) { if(v[k]==v[i]||v[k]==v[j]) continue; // No se puede repetir for(int l=0; l<v.length; l++) { if(v[l]==v[i]||v[l]==v[j]|| v[l]==v[k]) continue; // No se puede repetir b = v[k]*10+v[l]; // Se obtiene el segundo valor de dos digitos c = a*b ; // Se obtiene la multiplicación de los dos valores // Se verifica si el número generado está entre los posibles resultados // y de ser así se escribe la respuesta y se termina el proceso for(int x: posibles) { if(c==x) { System.out.println("Respuesta encontrada: "+a+" x " +b+" = "+c); haySolucion=true; break ciclo; } // fin if } // fin for x } // fin for l } // fin for k } //fin for j } // fin for i if(!haySolucion) System.out.println("No hay un numero vampiro con los digitos " + d1+", "+d2+", "+d3+" y "+d4); } public static void main(String[] args) { testVampiro(1,2,3,4); testVampiro(1,3,9,5); testVampiro(3,9,1,5); } }
Soluciones a problemas comunes de programación en lenguaje java.
jueves, julio 28, 2011
Verificación de Números Vampiros
Con este programa se pretende evaluar si cuatro dígitos recibidos forman un número vampiro:
Suscribirse a:
Comentarios de la entrada (Atom)
Multiprocesamiento recursivo en JAVA 7
Una de las estrategias de diseño de algoritmos más comunes es la de "divide y vencerás", en la cual, un problema de tamaño relativ...
-
El algoritmo de ordenación por montículos o Heap Sort recorre el conjunto de elementos desde la posición de la mitad hasta la primera organi...
-
Generación con sustitución Si se quieren generar todas las posibles cadenas que se forman con un determinado número de caracteres, una pri...
-
Para solucionar el problema de la ruta más corta entre dos nodos de un grafo se puede utilizar el Algoritmo de Dijkstra , el cual sigue el s...
moncler
ResponderBorraroff white clothing
calvin klein outlet
kyrie irving shoes
supreme hoodie
timberland shoes
michael kors outlet store
nike cortez women
coach outlet online
nike air max 2019
xiaofang20191218
golden goose sneakers
ResponderBorrarnike air max
balenciaga shoes
supreme hoodie
goyard bags
hermes belts
yeezys
yeezy shoes
kd 12
off white jordan 1
xiaofang20191218