FIBONACCI
Pessoal, estou tentando fazer a sequência de Fibnacci em uma função do VBA mas está dando o erro #VALOR!
Alguém sabe qual é o problema?
Function fibo(n As Variant) As Variant
Dim i As Double
i = 2
If n <= 0 Then
fibo = [Ô]Não existe[Ô]
ElseIf n = 1 Then
fibo = 1
ElseIf n = 2 Then
fibo = 2
Else
Do While i <> n
fibo(i) = (fibo(i - 1)) * (fibo(i - 2))
i = (1 + i)
Loop
End If
End Function
Alguém sabe qual é o problema?
Function fibo(n As Variant) As Variant
Dim i As Double
i = 2
If n <= 0 Then
fibo = [Ô]Não existe[Ô]
ElseIf n = 1 Then
fibo = 1
ElseIf n = 2 Then
fibo = 2
Else
Do While i <> n
fibo(i) = (fibo(i - 1)) * (fibo(i - 2))
i = (1 + i)
Loop
End If
End Function
corrigindo, gentee (mas continua dando o erro...) :
Function fibo(n As Variant) As Variant
Dim i As Double
i = 2
If n <= 0 Then
fibo = [Ô]Não existe[Ô]
ElseIf n = 1 Then
fibo = 1
ElseIf n = 2 Then
fibo = 2
Else
Do While i <> n
fibo(i) = (fibo(i - 1)) + (fibo(i - 2))
i = (1 + i)
Loop
End If
End Function
Function fibo(n As Variant) As Variant
Dim i As Double
i = 2
If n <= 0 Then
fibo = [Ô]Não existe[Ô]
ElseIf n = 1 Then
fibo = 1
ElseIf n = 2 Then
fibo = 2
Else
Do While i <> n
fibo(i) = (fibo(i - 1)) + (fibo(i - 2))
i = (1 + i)
Loop
End If
End Function
boa noite fiz um modelo em vba veja se ajuda
Function calcfibonacci() As String
Dim fibonacci(10) As Long
Dim dados As String
Dim i As Integer
fibonacci(1) = 1
fibonacci(2) = 1
For i = 3 To 10
fibonacci(i) = fibonacci(i - 1) + fibonacci(i - 2)
Next i
For i = 1 To 10
dados = dados & fibonacci(i) & Chr(13)
Next i
MsgBox dados
End Function
Function calcfibonacci() As String
Dim fibonacci(10) As Long
Dim dados As String
Dim i As Integer
fibonacci(1) = 1
fibonacci(2) = 1
For i = 3 To 10
fibonacci(i) = fibonacci(i - 1) + fibonacci(i - 2)
Next i
For i = 1 To 10
dados = dados & fibonacci(i) & Chr(13)
Next i
MsgBox dados
End Function
Vc está fazendo chamadas recursivas, não é necessário inserir um loop dentro da função (na realidade, alguns especialista afirmam que o verdadeiro loop em computação é o recursivo). a sua definição inicial dentro da função para os primeiros pares tava errada. Este é o correto: Fibonacci Wikipedia
Estou enviando um projetinho que acredito que seja a funcionalidade que vc está querendo. Depois tente implementar uma função recursiva pra calcular fatoriais. A função ficou simples assim:
Estou enviando um projetinho que acredito que seja a funcionalidade que vc está querendo. Depois tente implementar uma função recursiva pra calcular fatoriais. A função ficou simples assim:
Function fibo(n As Variant) As Variant
If n = 0 Then
fibo = 0
ElseIf n = 1 Then
fibo = 1
Else
fibo = fibo(n - 1) + fibo(n - 2)
End If
End Function
Entendi, gente... Muito obrigada!
E se, usando o mesmo raciocÃnio do Fibonacci, eu quisesse implementar uma função que obedeça a essa sequencia: {1, 2, 2, 4, 8, 32, 256...}
Ou seja, tirando os 2 termos iniciais (1,2), um termo n sempre será dado pela multiplicação entre (n-1)(n-2)
Ou seja
f(1) = 1
f(2) = 2
n>2 temos que f(n) = f(n-1)*f(n-2)
Alguém tem alguma idéia de como eu posso fazer isso?
E se, usando o mesmo raciocÃnio do Fibonacci, eu quisesse implementar uma função que obedeça a essa sequencia: {1, 2, 2, 4, 8, 32, 256...}
Ou seja, tirando os 2 termos iniciais (1,2), um termo n sempre será dado pela multiplicação entre (n-1)(n-2)
Ou seja
f(1) = 1
f(2) = 2
n>2 temos que f(n) = f(n-1)*f(n-2)
Alguém tem alguma idéia de como eu posso fazer isso?
é só modificar as duas condições iniciais dentro da função de acordo co o que vc quer, e em vez de somar quando for maior que 2 vc multiplica os dois termos
Então, eu tento fazer isso, só que aparece o erro #VALOR!
Alguma idéia?
Alguma idéia?
posta o seu código
Tópico encerrado , respostas não são mais permitidas