Programa para combinaciones con un numero de 5 cif

Necesito un programa que me realice lo siguiente:
Al ingresar un numero de 5 cifras ejemplo: 13490 este puede estar formado por numeros del 0 al 9 es decir ( 0, 1,2,3,4,5,6,7,8,9 ), el programa me genere todas las combinaciones posibles con este numero, para el ejemplo anterior por ejemplo algunas combinaciones serian: 13409, 34190, 94130, 41309. Ademas de que las muestre todas en la pantalla con la opcion de imprimirse .
Los casos en que se puede dar el numero de 5 cifras son los siguientes:
A) Cuando los 5 numeros de la cifra son diferentes ejemplo 12345 cabe destacar que cuando los 5 numeros son diferentes el total de combinaciones son 120. B)Cuando el numero de 5 cifras contiene 4 numeros iguales y 1 diferente ejemplo 14444 para este caso el total de combinaciones posibles son 5, C)cuando el numero de 5 cifras contiene 3 numeros iguales y 2 diferentes ejemplo 55570 son 20 combinaciones posibles, D) cuando el numero tiene 2 igules, 2 iguales y 1 diferente ejemplo 33881 son 30 combinaciones posibles, E) cuando el numero tiene 3 iguales y 2 iguales ej 99922 son 10 combinaciones posibles, F) cuando el numero tiene 2 iguales y 3 diferentes ej 11098 son 60 combinaciones posibles.
1

1 Respuesta

116.450 pts. Desarrollador web, especializado en PHP, AJAX, HTML, CSS
¿En qué lenguage?
Puede ser en lenguaje C o Java
           gracias de antemano espero respuesta
Lamento no poder ayudarte en esto, Solo se programar en php, asp, asp.net y javascript. Si queires te paso un ejemplo en php o js, que por lo que tengo entendido, tienen ua sintaxis parecida a C.
Si lo puedes hacer en javascript estaria bien 
  gracias por la ayuda
   atentamente un estudiante en aprietos
Aqui va el codigo:
<script type="text/javascript">
function calcularCombinaciones(input) {
     inputCopy = input;
     numerador = factorial(input.length);
     denominador = 1;
     while(inputCopy != "") {
          denominador *= factorial(cifrasIguales(inputCopy, inputCopy.charAt(0)));
          inputCopy = stripCharactersFromString(inputCopy, inputCopy.charAt(0));
     }
     return numerador/denominador;
}
function cifrasIguales(stringToSearch, characterToFind) {
     count = 0;
     for(i = 0; i < stringToSearch.length; i++) {
         if(stringToSearch.charAt(i) == characterToFind)
              count++;
     }
     return count;
}
function stripCharactersFromString(stringToStripFrom, characterToStrip) {
     outputString = "";
     for(i = 0; i < stringToStripFrom.length; i++)
          if(stringToStripFrom.charAt(i) != characterToStrip)
              outputString += stringToStripFrom.charAt(i);
     return outputString;
}
function factorial(inputNumber) {
     outputNumber = 1;
     for(i = inputNumber; i > 0; i--)
          outputNumber *= i;
     return outputNumber;
}
function crearLista(wordArray, strbase, remainingchars) {
    if(remainingchars.length == 1) { // base case: only one character remains, and can be arranged only one way
         wordArray[wordArray.length] = strbase + remainingchars.charAt(0); // append one remaining character to string base
    } else {
         for(var j = 0; j < remainingchars.length; j++) {
              currchar = remainingchars.charAt(j); // first character of remaining characters
              if(remainingchars.indexOf(currchar) == j) // ensures repeat letters do not cause combination redundancy
                   wordArray = crearLista(wordArray, strbase + remainingchars.charAt(j), remainingchars.substring(0, j) + remainingchars.substring(j+1, remainingchars.length)); //recursive call
         }
    }
     return wordArray;
}
function printWordList(wordArray) {
     output = "";
     for(i = 0; i < wordArray.length-1; i++)
          output += wordArray + ", ";
     output += wordArray[wordArray.length-1];
     document.combform.combinationlist.value = output;
}
function showCombinations(inputText) {
     numCombinations = calcularCombinaciones(inputText);
     confirmMessage = "The following calculation will involve finding " + numCombinations + " different combinations of the letters";
     confirmMessage += "\nyou have provided. Depending on the speed of your computer, it may take a while to";
     confirmMessage += "\nprocess this request, or in a worst-case scenario, your web browser may crash.";
     confirmMessage += "\nThis will do no damage to your computer that a restart will not solve.";
     confirmMessage += "\nAre you sure you want to continue?";
     if(numCombinations < 5000 || confirm(confirmMessage)) // only do it if the number of combinations to calculate is low, or the user agrees to the warning
          PrintWordList(crearLista(new Array(), "", inputText)); // calculate and then print all combinations of the letters provided
}
</script>
<table align="center">
<form name="combform">
<tr>
<td>
         Ingresar Numero: <input type="text" name="inputField" id="inputField">
    </td>
</tr>
<tr>
<td>
         <textarea name="combinationlist" rows=10 cols=70>Lista de combinaciones.</textarea>
    </td>
</tr>
<tr>
<td>
         <input type="button" onclick="showCombinations(inputField.value);" value="List All Possible Combinations">
    </td>
</tr>
</form>
</table>
Puse un textarea, para que lo puedas ver y probar ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas