Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > La Taberna
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-11-2006
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Post Para el que este aburrido y tenga ganas de pensar 2

Buenas, les paso otro para seguir con esta serie de divertimentos para ejercitar un poquito la mente , este me salio facil no le veo problema pero bueno, se los pongo como salio en el diario. Eso sí, lo podemos complicar mas!, si alguien se anima a hacerlo en delphi ( ), yo despues les puedo pasar los fuentes pero en java de la rta, porque tuve un problemilla al querer hacerlo con nuestro querido lenguaje...

Problema:

"Sea X el maximo nro de 20 digitos de la sucesion de Fibonacci"

enviar mail a rh@x.com

Saludos!
Responder Con Cita
  #2  
Antiguo 15-11-2006
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por kanvictor
(...) porque tuve un problemilla al querer hacerlo con nuestro querido lenguaje...

Problema:

"Sea X el maximo nro de 20 digitos de la sucesion de Fibonacci"
Normal que tuvieras problemas. ¿Hay algún tipo o clase que maneje números de 20 dígitos? A mi se me ocurre una solución usando Delphi, un tanto bruta pero bueno: BCD. A ver quién lo pilla. (Seoane, intenta reprimirte a ver si lo conseguimos alguno de nosotros, anda ).

Última edición por Ñuño Martínez fecha: 15-11-2006 a las 16:13:11.
Responder Con Cita
  #3  
Antiguo 15-11-2006
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Post

Efectivamente Ñuño ese es el tema no lo dije porque era obvio a la vista que estamos con un tratando con tipo de datos que no tenemos para esta cuestion. Eso es algo que le falta a nuestra querida herramienta no? ...

Y si, seguro que Seoane va a participar en esta tambien , asi que el que le tenga ganas, que se apure!!!
Responder Con Cita
  #4  
Antiguo 15-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Podemos usar el tipo TSuperlargo del que ya te hable en el otro hilo.

Código Delphi [-]
type
  TSuperLargo = array[0..30] of Byte;

function AddSuper(var a,b: TSuperLargo; Acarreo: Integer): TSuperLargo; overload;
var
  i,j: integer;
begin
  for i := 0 to 30 do
  begin
    j:= (Integer(a[i]) + Integer(b[i])) + Acarreo;
    Result[i]:= j mod 10;
    Acarreo:= j div 10;
  end;
end;

function AddSuper(a,b: TSuperLargo): TSuperLargo; overload;
begin
  Result:= AddSuper(a,b,0);
end;

function SuperToStr(a: TSuperLargo): string;
var
  i: integer;
  flag: Boolean;
begin
  Result:= '';
  flag:= FALSE;
  for i := 30 downto 0 do
  begin
    if flag then
      Result:= Result + IntToStr(a[i])
    else if a[i] > 0 then
    begin
      flag:= TRUE;
      Result:= Result + IntToStr(a[i]);
    end;
  end;
end;

// El algoritmo del fibonacci es un pelin cutre, lo se
function fibonacci(n: integer): string;
var
  i,j,k: TSuperLargo;
  Str: string;
begin
  FillChar(i,Sizeof(i),0);
  FillChar(j,Sizeof(j),0);
  FillChar(k,Sizeof(k),0);
  i[0]:= 1;
  j[0]:= 1;
  Result:= '';
  while Result = '' do
  begin
    k:= j;
    j:= AddSuper(i,j);
    i:= k;
    Str:= SuperToStr(j);
    if Length(Str)>n then
      Result:= SuperToStr(i);
  end;
end;


// Por ejemplo
ShowMessage(fibonacci(20));

La respuesta es:
x = 83621143489848422977
Responder Con Cita
  #5  
Antiguo 15-11-2006
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Angry Envidiaenvidiaenvidia...

Estoy empezando a odiarte, macho...
Responder Con Cita
  #6  
Antiguo 15-11-2006
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Post

jajjajajajajaja Sabia que Domingo la tenia que contestar! porque el fue el que me contesto lo del tipo superlargo!!

Les dije!, le gano de mano a los demas! jajAj! felicitaciones de nuevo!

A ver si alguno se anima y colabora con un:
"Para el que este aburrido y tenga ganas de pensar 3"
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Para alguien que este aburrido y con ganas de pensar! marceloalegre La Taberna 52 16-11-2006 21:52:18
Necesito alguien con paciencia y ganas e ayudare. Gabel Varios 2 13-09-2006 20:09:24
Para pensar seoane Humor 4 04-06-2006 23:48:34
Componente que tenga checkboxes como items k_miragaya OOP 2 22-07-2004 09:55:54
como hago q un TDBLookupComboBox tenga un valor seleccionado por defecto aram2r Conexión con bases de datos 1 03-06-2004 11:36:26


La franja horaria es GMT +2. Ahora son las 18:42:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi