Mostrar la combinación de tres cifras

Sabetodo Mensajes publicados 127 Estado Miembro -  
 Gemini -
Hola,
hola chicos. ¿Alguien tendría una idea sobre este ejercicio: Escribir una función que muestre en orden ascendente todas las
diferentes combinaciones de tres dígitos diferentes en orden
ascendente. Tenemos:

"012, 013, 014, 015, 016, 017, 018, 019, 023, ..., 789"

987 no está porque ya tenemos 789, 999 no consiste solo en
dígitos exclusivamente diferentes entre sí.

Debe estar prototipada de la siguiente manera:

int my_aff_comb();
Configuración: Linux Firefox 1.0.7

8 respuestas

  1. snakest
     
    ¿Pero en serio, todos van a pasar todo su tiempo en la piscina pidiendo que les hagan sus ejercicios? ¡¿¿¿???
    12
  2. L0ci Mensajes publicados 112 Estado Miembro 30
     
    Hola,
    No veo muy claro el interés del triple for. Por mi parte, he utilizado el siguiente algoritmo (en c#):
     main { for(int i = 0; i < 999; i++) { if(EsCreciente(i)) { //Añadir a mis resultados } } } private bool EsCreciente(int i) { //dividir los 3 dígitos if(dígito1 < dígito2 && dígito2 < dígito3) return true; return false; } 

    Encuentro 120 resultados diferentes, de 012 a 789.
    4
  3. dna.factory Mensajes publicados 19927 Fecha de registro   Estado Moderador Última intervención   1 621
     
    ""ella será prototipada: int my_aff_comb();"
    no sueñes, no lo vamos a hacer por ti, ¿eh?
    no sirve de nada darnos todos los detalles
    díganos más bien a qué ya has pensado, cómo se introducen los números (cuántos números dados, etc..)

    si no, te vas a encontrar con algo como:
    printf "012, 013, 014, 015, 016, 017, 018, 019, 023, ..., 789";
    --
    para Navidad, regala un Bescherelle"
    1
    1. Sabetodo Mensajes publicados 127 Estado Miembro 3
       
      Lo siento chicos. Aquí está lo que he hecho, pero no es evidente:
       int my_aff_comb() { int a,b,c; for(a=0;a<=7;a++) { for(b=1;b<=8;b++) { for(c=2;c<=9;c++) { my_putchar('a''b''c'); my_putchar(';'); } } } } 

      NB: Se me prohíbe usar las funciones printf y scanf.
      0
    2. loupius > Sabetodo Mensajes publicados 127 Estado Miembro
       
      ¿Y, qué devuelve la función?
      0
    3. dna.factory Mensajes publicados 19927 Fecha de registro   Estado Moderador Última intervención   1 621 > Sabetodo Mensajes publicados 127 Estado Miembro
       
      eso, eso funciona únicamente para todos los dígitos del 0 al 9
      en mi opinión, el verdadero interés del ejercicio sería justamente hacer lo mismo para cualquier número de dígitos entre 0 y 9, cada dígito pudiendo incluso repetirse
      la lista siendo ingresada como parámetro
      por ejemplo, tiene que funcionar si ingresamos '0,1,1,3,5,5,5,8' a la función
      peor aún, debe ser capaz de funcionar si ingresamos 1,6,2,8,1,0,3,6
      y ahí efectivamente, hay un poco más de trabajo que 3 malditos for
      --
      por navidad, regale un bescherelle
      0
    4. mariethe > dna.factory Mensajes publicados 19927 Fecha de registro   Estado Moderador Última intervención  
       

      Busco información sobre las combinaciones posibles con 3 números. No soy muy bueno en matemáticas. Mil gracias.

      0
    5. Modératrice
       
      Hola,
      Es una combinación de números, son combinaciones para códigos de sitios como blablaland y muchos otros. ¡Gracias, el foro está cerrado!
      0
  4. Tekpi
     
    Y otro que viene de Epitech!
    Busca en los man...
    0
  5. Gemini
     
    Personalmente, no había logrado hacer esos, soy muy malo en algoritmos :x
    0
  6. yasmoh2010
     
    ```pascal
    Program combinaison;
    Uses WinCrt;

    Var ch:string;

    Procedure Remplir (Var ch:string);
    begin
    writeln('donner le nombre');
    Readln(ch);
    End;

    procedure permut(var x,y:char);
    var aux:char;
    begin
    aux:=x;
    x:=y;
    y:=aux
    end;

    function fact(x:integer):integer;
    var f,i:integer;

    begin
    f:=1;
    for i:= 1 to x do
    begin
    f:=f*i ;
    end;
    fact:=f;
    end;

    procedure affichecomb(ch:string);
    var i,n,np:integer;
    begin
    n:=length(ch);
    np:=0;
    repeat

    for i:= 1 to n-1 do
    begin
    permut(ch[i],ch[i+1]);
    np:=np+1;
    write(ch,'-');
    end;
    permut(ch[1],ch[n]);
    write(ch,'-');
    np:=np+1;

    until np =fact(length(ch));
    end;

    begin
    remplir(ch);
    writeln;
    affichecomb(ch);
    end.
    ```
    -1
  7. christ55
     
    ¿Cuál es el número exacto de combinaciones?
    -2
    1. fiddy Mensajes publicados 441 Fecha de registro   Estado Colaborador Última intervención   1 847
       
      Tienes 720 combinaciones.
      0