Mostrar la combinación de tres cifras
Sabetodo
Mensajes publicados
127
Estado
Miembro
-
Gemini -
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();
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
-
¿Pero en serio, todos van a pasar todo su tiempo en la piscina pidiendo que les hagan sus ejercicios? ¡¿¿¿???
-
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. -
""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"-
-
-
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 -
-
-
-
-
-
-
```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.
``` -