• Lunes 7 de Julio de 2025, 03:52

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - p_sufan

Páginas: [1]
1
Retos / Re: Extensiones Decimales
« en: Martes 6 de Diciembre de 2005, 19:49 »
Vale JuanK, estaba pensando que nadie estaba interesado en mi reto (que no era mio en realidad, es de la ACM) pero bueno... a propósito JuanK ¿tu sabes algo de la ACM?, donde se puede conseguir información en alguna universidad, instituto, etc. Te lo agradecería.... bueno, voy a ver otro reto... nos vemos (o escribimos)...

Pablo Sufan G.  :kicking:

2
Retos / Re: Extensiones Decimales
« en: Sábado 3 de Diciembre de 2005, 02:36 »
Ya casi cuarenta y ocho horas de la presentación del problema este y nadie responde... no, no tuvo exito... bueno, aqui va el código... en Turbo C...

Código: Text
  1.  
  2. #include <conio.h>
  3. #define MAX 3000
  4.  
  5. int revisa (int vr[], int *pi, int *pf, int pvr)
  6. {
  7. int i,j,igual=0;
  8.  
  9. i=0;
  10. j=pvr-1;
  11.  
  12. while(!igual && i<j)
  13.  {
  14.  
  15.  if (vr[i]==vr[j])
  16.   {
  17.   igual=1;
  18.   *pi=i;
  19.   *pf=j;
  20.   }
  21.  i++;
  22. }
  23.  
  24.  
  25. return igual;
  26. }
  27.  
  28.  
  29. main()
  30. {
  31. long n,d,r,c,ent=0,entero=0;
  32. int pd=0,pi=0,pf=0,lar=0,seguir=1;
  33. int vr[MAX], pv=0,pvr=0,i,j,c_0=0,rep;
  34. char v[MAX];
  35.  
  36.  
  37. clrscr();
  38.  
  39. scanf ("%li %li",&n,&d);
  40. if (n%d==0) entero=1;
  41.  
  42. if (n>=d)
  43.  {
  44.  ent=n/d;
  45.  n=n%d;
  46.  
  47.  while (ent)
  48.   {
  49.   v[pv++]=ent%10+'0';
  50.   ent/=10;
  51.   pd++;
  52.   }
  53.  
  54.  for (i=0;i<pv/2;i++)
  55.   {
  56.   j=v[i];
  57.   v[i]=v[pv-i-1];
  58.   v[pv-i-1]=j;
  59.   }
  60.  }
  61.  
  62. while (pv<MAX && n && seguir)
  63.  {
  64.  
  65.  vr[pvr++]=n;
  66.  
  67.  if (revisa(vr,&pi,&pf,pvr))
  68.   {
  69.   seguir=0;
  70.   rep=pv-(pf-pi);
  71.   continue;
  72.   }
  73.  
  74.  n=n*10;
  75.  c=(n/d)%10;
  76.  n=n%d;
  77.  v[pv++]=c+'0';
  78.  }
  79.  
  80. if (seguir==0)
  81.  {
  82.  printf ("\n ");
  83.  if (!pd) printf ("0");
  84.  for (i=0;i<MAX && i<pv;i++)
  85.  {
  86.  if (pd==0) printf (".");
  87.  if (rep==0) printf ("(");
  88.  printf ("%c",v[i]);
  89.  pd--; rep--;
  90.  }
  91.  printf (")");
  92.  
  93.   printf ("\n %i digito(s) se repite(n)",pf-pi);
  94.   }
  95. else
  96.  {
  97.  printf ("\n ");
  98.  if (!pd) printf ("0");
  99.  for (i=0;i<MAX && i<pv;i++)
  100.  {
  101.  if (pd==0) printf (".");
  102.  if (rep==0) printf ("(");
  103.  printf ("%c",v[i]);
  104.  pd--;
  105.  }
  106.  if (entero) printf (".");
  107.  printf ("(0)");
  108.  
  109.  printf ("\n 1 digito repite",pf-pi);
  110.  }
  111.  getch();
  112.  
  113. }
  114.  
  115.  
  116.  

La maña estaba no en los cuocientes, pues uno nunca sabe si son parte de una secuencia mas grande, estaba en los remanentes, en la repetición de estos...

Bueno, no hubo fiebre de programación, pero espero mas furor para la próxima vez... nos vemos...


Pablo Sufan :hola:

3
Retos / Re: Maratones de Programación
« en: Jueves 1 de Diciembre de 2005, 02:15 »
Oye Jose, yo soy de Santiago de Chile, pero ¿cual es la URL donde esta la información?...

4
Retos / Extensiones Decimales
« en: Jueves 1 de Diciembre de 2005, 00:15 »
Este problema sale planteado en http://acm.uva.es/p/v2/202.html, me gusto y lo hice.

Esta página la conoci gracias a solocodigo...

El reto a continuación:

La extensión decimal de la fracción 1/33 es 0.030300303..., donde 03 se repite indefinidamente. De hecho, la extensión decimal de cada número racional (fracción) tiene un ciclo de repetición (comparado con las extensiones decimales de los números irracionales que no tienen tal ciclo de repetición). Aquí vamos a utilizar paréntesis para incluir el ciclo de repetición.

Hacer un programa que indique el ciclo que se repite.

Fecha maxima..... una Semana (tomando en cuanta que yo estuve varias horas con el bicho)

Entrada

76 25
5 43
1 397

Salida

76/25 = 3.04(0)
   1  digitos que se repiten

5/43 = 0.(116279069767441860465)
   21 = digitos que se repiten

1/397 = 0.(00251889168765743073047858942065491183879093198992...)
   99 = digitos que se repiten


Parece fácil pero tiene su maña...  :comp:

Páginas: [1]