Erro no Fibonnaci [resolvido]

[code] 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;

   }   [/code]

tah dando erro na linha do if alguem sabe pq?

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

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))

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?

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.

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

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…

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?

[quote=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?[/quote]

o mais rapido e pratico é vc fazer ± isso:

[code]Date antes = new Date();
//executaMetodo();
Date depois = new Date();

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

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