All pastes #247059 Raw Edit

Quelqu'un

public text v1 · immutable
#247059 ·published 2006-11-12 23:30 UTC
rendered paste body
    Public values() As Double
    Function MemFibonacci(ByVal n As Double) As Double
        If Nonexistent(n) Then
            Select Case n
                Case Is <= 1
                    MemFibonacci = n
                Case Else
                    MemFibonacci = MemFibonacci(n - 1) + MemFibonacci(n - 2)
            End Select
            Call WriteValue(n, MemFibonacci)
        Else
            Return ReadValue(n)
        End If
    End Function
    Private Function Nonexistent(ByVal n As Double) As Boolean
        If n > UBound(values) Then
            Nonexistent = True
        ElseIf n > 0 And values(n) = 0 Then
            Nonexistent = True
        Else
            Nonexistent = False
        End If
    End Function
    Private Sub WriteValue(ByVal n As Double, ByVal Value As Double)
        Static Values(n)
        Values(n) = Value
    End Sub

    'Fonction de lecture des entrées dans le tableau de sauvegarde
    Private Function ReadValue(ByVal n As Double) As Double
        Return values(n)
    End Function