elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Reto Programación
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Reto Programación  (Leído 6,851 veces)
ace332

Desconectado Desconectado

Mensajes: 66


Ver Perfil
Re: Reto Programación
« Respuesta #10 en: 22 Diciembre 2010, 00:09 am »

ajam, hay cierto parecido. En ambos problemas se tienen que realizar movimientos con ciertas restricciones  :)



Bueno como lo prometido es deuda aqui esta el código.
Código
  1. #include <stdio.h>
  2.  
  3. #define MAX_ELEM 1000
  4.  
  5. void permutar(char *a,char *b)
  6. {
  7.  char temp=*a;
  8.  *a=*b;
  9.  *b=temp;
  10. }
  11.  
  12. int main(void)
  13. {
  14.  int i,diravance=1,dirsalto=1,csaltos=1,saltos=1,incsaltos=1,ne,te,uesp,des=-1;
  15.  char a[MAX_ELEM];
  16.  /* leer la cantidad de elementos de cada tipo */
  17.  scanf("%d",&ne);
  18.  /* establecer la posicion inicial de los 1's y 2's */
  19.  te=2*ne+1;
  20.  for(i=0;i<te;i++)
  21.    a[i]=(i<ne)?'1':'2';
  22.  a[ne]=' ';
  23.  a[te]='\0';
  24.  uesp=ne;
  25.  puts(a);
  26.  /* efectuar los cambios en el arreglo */
  27.  while(csaltos>=0)
  28.  {
  29.    permutar(&a[uesp],&a[uesp+des]);
  30.    uesp+=des;
  31.    puts(a);
  32.    /* determinar siguiente movimiento */
  33.    if(saltos)
  34.    {
  35.      des=dirsalto*2;
  36.      saltos--;
  37.    }
  38.    else
  39.    {
  40.      des=diravance;
  41.      saltos=(csaltos+=incsaltos);
  42.      dirsalto*=-1;
  43.      diravance*=-1;
  44.    }
  45.    /* hacer el ajuste necesario luego de la mitad del total de movimientos */
  46.    if(saltos>=ne||ne==1)
  47.    {
  48.      incsaltos=-1;
  49.      diravance=-diravance;
  50.    }
  51.  }
  52.  return 0;
  53. }
  54.  

Que tengan unas felices fiestas!
Saludos  :)

EDIT: Para no hacer doble post


« Última modificación: 22 Diciembre 2010, 18:25 pm por BeetleJuice » En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Reto ;)
Ingeniería Inversa
NeoKiller 3 3,200 Último mensaje 15 Agosto 2004, 23:12 pm
por NeoKiller
programacion web vs programacion de escritorio
Programación General
lupitapro 2 7,841 Último mensaje 29 Mayo 2010, 05:51 am
por Dreamaker
Reto de programacion
Programación General
dx671 3 3,236 Último mensaje 24 Junio 2011, 00:50 am
por Littlehorse
Reto de programacion
Programación C/C++
SXF 9 3,833 Último mensaje 7 Marzo 2012, 19:29 pm
por Eternal Idol
problema en reto de programacion
Programación C/C++
daryo 5 2,661 Último mensaje 22 Diciembre 2014, 01:19 am
por Yoel Alejandro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines