Autor
|
Tema: [RETO] Project Euler 2 (Leído 10,894 veces)
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Generar algoritmo que devuelva la suma de los números pares de la serie de Fibonacci menores a 4000000. Info: http://projecteuler.net/problem=2 http://es.wikipedia.org/wiki/Sucesi%C3%B3n_de_Fibonacci La función es correcta si devuelve: Estructura a seguir: Private Function NOMBREFUNCION(Optional lLimit As Long = 4000000) As Long
DoEvents!
|
|
« Última modificación: 3 Febrero 2013, 16:22 pm por Psyke1 »
|
En línea
|
|
|
|
Danyfirex
Desconectado
Mensajes: 493
My Dear Mizuho
|
Bueno aquí dejo la mía. un Poco larga pero funciona. CorrejidoPrivate Function Fibonacci() As Long Dim a As Long, b As Long, c As Long, x As Long: x = &H4 a = 0 b = 0 c = 0 a = (a * x) + 2: Fibonacci = Fibonacci + a: b = a: a = (a * x): Fibonacci = Fibonacci + a: c = a: a = (a * x) + b: Fibonacci = Fibonacci + a: b = a: a = (a * x) + c: Fibonacci = Fibonacci + a: c = a: a = (a * x) + b: Fibonacci = Fibonacci + a: b = a: a = (a * x) + c: Fibonacci = Fibonacci + a: c = a: a = (a * x) + b: Fibonacci = Fibonacci + a: b = a: a = (a * x) + c: Fibonacci = Fibonacci + a: c = a: a = (a * x) + b: Fibonacci = Fibonacci + a: b = a: a = (a * x) + c: Fibonacci = Fibonacci + a: c = a: a = (a * x) + b: Fibonacci = Fibonacci + a: end Function
Saludos
|
|
« Última modificación: 24 Enero 2013, 22:11 pm por Danyfirex »
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Como no organices mejor el código no nos vamos a enterar de nada. No abuses tanto de los ":". Y te informo que haciendo esto: Dim a, b, c As Long
Sólo declaras la última variable como Long, las otras, como no has puesto nada, por defecto serían Variant, que ocupa memoria innecesariamente. Sería así: Dim a As Long, b As Long, c As Long
DoEvents!
|
|
|
En línea
|
|
|
|
Danyfirex
Desconectado
Mensajes: 493
My Dear Mizuho
|
Como no organices mejor el código no nos vamos a enterar de nada. No abuses tanto de los ":". Y te informo que haciendo esto: Dim a, b, c As Long
Sólo declaras la última variable como Long, las otras, como no has puesto nada, por defecto serían Variant, que ocupa memoria innecesariamente. Sería así: Dim a As Long, b As Long, c As Long
DoEvents! No sabia eso. Gracias Psyke1. y perdon por el abuso de los :. gracias Corrijo el código. saludos EDITO:Comprobé asi y me dice que es long. Private Sub Form_Load() Dim x, y As Long x = 4613732 MsgBox (VarType(y) = vbLong) End Sub
Seguro que abarca los bytes de un tipo Variant?
|
|
« Última modificación: 24 Enero 2013, 21:04 pm por Danyfirex »
|
En línea
|
|
|
|
rob1104
Desconectado
Mensajes: 340
Usuario común
|
Seguro que abarca los bytes de un tipo Variant? Si Private Sub Form_Load() Dim x, y As Long x = 4613732 y = 4613732 MsgBox LenB(x) & " bytes" MsgBox LenB(y) & " bytes" End Sub
|
|
|
En línea
|
Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.
|
|
|
Danyfirex
Desconectado
Mensajes: 493
My Dear Mizuho
|
Si Private Sub Form_Load() Dim x, y As Long x = 4613732 y = 4613732 MsgBox LenB(x) & " bytes" MsgBox LenB(y) & " bytes" End Sub
Gracias. ya alargue el tema con mis preguntas y respuestas tontas Edito mi código. saludos
|
|
|
En línea
|
|
|
|
imoen
Desconectado
Mensajes: 1.589
|
hola
Si si no le pones tipo la declaracion automatica es variant. Otra cosa si declarais en vez de 3 variables , un array de 3 elementos ?¿ no sale mas rentable y asi lo podeis usar en los bucles?¿
bs imoen
|
|
|
En línea
|
Medion Akoya p6624 i-3 370 8 gigas DDR 3 RAM //750 hd 5400 gforce gt425 optimus XDD Esta es mi casa, mi pueblo , o lo que queda de el aun asi lucharemos ... POR BENALIA....!!
srta imoen
|
|
|
rob1104
Desconectado
Mensajes: 340
Usuario común
|
Pues bueno, como ni a mí ni a mi core 2 duo nos importa la velocidad y ademas que no tocaba vb6 desde hace mas de 2 años pues seguiré los codigos para ir practicando, no sean tan destructivos Function robEuler2() As Long Dim f1 As Long, f2 As Long, contador As Long, resultado As Long, suma As Long f1 = 0 f2 = 1 resultado = f1 + f2 Do While suma < 4000000 f1 = f2 + resultado resultado = f2 f2 = f1 contador = contador + 1 If f2 Mod 2 = 0 Then suma = suma + f2 End If Loop robEuler2 = suma End Function
|
|
|
En línea
|
Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.
|
|
|
imoen
Desconectado
Mensajes: 1.589
|
HOla
Codigo muy clarito, una pregunta , la sucesion de fibonacci tiene pares cada 4 y 3 numeros os puede ayudar eso para no tener que divir y optimizar codigo XD
bs imoen
|
|
|
En línea
|
Medion Akoya p6624 i-3 370 8 gigas DDR 3 RAM //750 hd 5400 gforce gt425 optimus XDD Esta es mi casa, mi pueblo , o lo que queda de el aun asi lucharemos ... POR BENALIA....!!
srta imoen
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Aquí dejo la mía: Private Static Function Psk1_PE2(Optional lLimit As Long = &H3D0900) As Long Dim Q1 As Long Dim Q2 As Long Dim Q3 As Long If lLimit And &H80000000 Then Exit Function Q1 = &H1 Q2 = &H1 Q3 = &H2 Do While Q3 < lLimit Psk1_PE2 = Psk1_PE2 + Q3 Q1 = Q2 + Q3 Q2 = Q1 + Q3 Q3 = Q2 + Q1 Loop End Function
DoEvents!
|
|
« Última modificación: 25 Enero 2013, 13:43 pm por Psyke1 »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Projecto Euler problema 12
Ejercicios
|
lDanny
|
5
|
5,414
|
16 Octubre 2010, 04:33 am
por [L]ord [R]NA
|
|
|
[RETO] Project Euler 1
« 1 2 3 4 5 »
Programación Visual Basic
|
Psyke1
|
42
|
21,523
|
26 Enero 2013, 11:20 am
por imoen
|
|
|
[RETO] Project Euler 3
« 1 2 »
Programación Visual Basic
|
Psyke1
|
13
|
6,916
|
3 Febrero 2013, 20:45 pm
por imoen
|
|
|
[RETO] Project Euler 4
« 1 2 »
Programación Visual Basic
|
Psyke1
|
10
|
6,067
|
4 Febrero 2013, 23:32 pm
por imoen
|
|
|
Ayuda con el calculo de Pi por la Serie de Euler
Programación C/C++
|
Rollingman216
|
3
|
2,191
|
24 Agosto 2017, 04:09 am
por engel lex
|
|