• Miércoles 20 de Noviembre de 2024, 12:37

Autor Tema:  Extensiones Decimales  (Leído 13024 veces)

p_sufan

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Extensiones Decimales
« en: Jueves 1 de Diciembre de 2005, 00:15 »
0
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_sufan

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Extensiones Decimales
« Respuesta #1 en: Sábado 3 de Diciembre de 2005, 02:36 »
0
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:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Extensiones Decimales
« Respuesta #2 en: Martes 6 de Diciembre de 2005, 16:00 »
0
Hola ante todo gracias,
diste muy poco tiempo para el reto, los restos deben durar un tiempo considerable publicados, para que le gente se interese despues de un tiempo pues no todo el mundo entra al foro todos los dias ni ve todas las publicaciones todos los dias  ni tiene toiempotodos los dias, de hecho las personas que mas participan en los foros suelen ser las que trabajan y tienen otras obligaciones como la universidad, la familia etc.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

p_sufan

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Extensiones Decimales
« Respuesta #3 en: Martes 6 de Diciembre de 2005, 19:49 »
0
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:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Extensiones Decimales
« Respuesta #4 en: Domingo 11 de Diciembre de 2005, 09:49 »
0
ya hace un tiempo que no m conecto con ese tema y de hecho hace ya tiempo que nisiquiera participo en las competencias, por ahi tengo un pequeño repositorio de jerciioc para hacerlos algun dia...
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

cathiss38

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Extensiones Decimales
« Respuesta #5 en: Martes 7 de Enero de 2020, 03:43 »
0
Hola ante todo gracias,
diste muy poco tiempo para el reto, los restos deben durar un tiempo considerable publicados, para que le gente se interese despues de un tiempo pues no todo el mundo entra al foro todos los dias ni ve todas las publicaciones todos los dias  ni tiene toiempotodos los dias Rachat de crédit meilleurs taux, de hecho las personas que mas participan en los foros suelen ser las que trabajan y tienen otras obligaciones como la universidad, la familia etc.
Quizás el foro debería estar vinculado a alguna red social. De esa manera todos tendrán nuevas noticias.