Erro no Fibonnaci [resolvido]

8 respostas
leandrognaf
public int fib3(int n) throws Exception{
       int i =1;
       int j=0;
       int k=0;
       int h=1;
       int t;
              
       while(n>0){
           
           if (n%2=1){
           
            t=j*h;
            j=i*h+j*k+t;
            i=i*k+t;
                        
           }
           t=h*h;
           h=2*k*h+t;
           k=k*k+t;
           n=n/2;
           
             
       }
       return j;

       }

tah dando erro na linha do if alguem sabe pq?

8 Respostas

alucardeck

nossa… mas vc tah tentando fazer uma função de fibonnaci ???
nao entendi o pq de tantas variaveis

A

Você está atribuindo o valor 1 a uma expressão, ou seja, usou só =, para compara valores primitivos use ==.

if(n%2=1)
if((n%2)==1))
ederfreitas

Estranho esta sua forma de calcular o termo.

Dê uma olhada aqui pra você entender melhor a forma de cálculo.

http://pt.wikipedia.org/wiki/Número_de_Fibonacci.

E que erro está ocorrendo?

Elizeu_Santos

você quer ser ajudado? então… poste a lógica do seu projeto para que possamos entender a forma com a qual você pretende resolver o problema.

leandrognaf

Vlw Alberes

Não acredito que eu dei esse mole hehehe

pessoal o professor q passou esse algoritmo pra calcular o fibonnaci e mandou implementar em uma linguagem

vlw pessoal

alucardeck

nossa… o professor de programação passou esse codigo???

a qualidade do ensino no Brasil está caindo…
ou era professor de geografia…

public int fib(int n){ if(n==0)return 0; if(n==1)return 1; return fib(n-1)+fib(n-2); }

ou se vc gosta de economizar espaço

public int fib2(int n){ return n==0?n:n==1?n:(fib2(n-1)+fib2(n-2)); }

mostra lá pra ele, fala q normalmente é assim que é feito… rs…

leandrognaf

Hahaha

na verdade e inteligencia artificial

ele passou 3 maneiras diferentes de calcular o fibonnaci

e vem k vc sabe me dizer se eu consigo calcular o tempo de execução de um metodo?

alucardeck
leandrognaf:
Hahaha

na verdade e inteligencia artificial

ele passou 3 maneiras diferentes de calcular o fibonnaci

e vem k vc sabe me dizer se eu consigo calcular o tempo de execução de um metodo?

o mais rapido e pratico é vc fazer +- isso:

Date antes = new Date();
//executaMetodo();
Date depois = new Date();

//tempo em milesimos
long ms = depois.getTime()-antes.getTime();

não é preciso, mas para processos um pouco demorados dah pra ter uma ideia de tempo gasto..

Criado 23 de março de 2011
Ultima resposta 23 de mar. de 2011
Respostas 8
Participantes 5