Recursividade

2 respostas
I

Pessoal estou tentando fazer um exercício de recursividade mas aparece o seguinte erro.

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
This method must return a result of type double

at recursividade03.serie(recursividade03.java:19)
at recursividade03.main(recursividade03.java:15)

O que devo fazer ?

/*

  • N/2 + N-1/4 - N-2/2 + N-3/4 -  + 1/2 ou 4
    
    <em>/
    
    import javax.swing.</em>;
    
    public class recursividade03
    
    {
    
    public static void main(String args[])
    
    {
    
    int num,h,k;
    
    String temp;
    
    h=4;
    
    temp=JOptionPane.showInputDialog("Digite um número para calcular a serie");
    
    num=Integer.parseInt(temp);
    
    JOptionPane.showMessageDialog(null,"O resultado da serie é "+serie(num-1,h));
    

    }

    public  static double serie(int n,int k){
    
    if(n<=0)
    
    {
    
    return 0;
    
    }
    
    else
    
    {
    
    if(k==2)
    
    {
    
    return (serie(n-1,4)-n/2);
    
    }
    
    if(k==4)
                                                    {
                                                      return (serie(n-1,2)+n/4);
                                                                 }
                    }
    

    }

}

2 Respostas

R

tenta mudar seu método pra int.

regis_hideki

Da próxima vez, utilize a tag "[code]" pra facilitar a leitura do código.

O que acontece, é que dependendo dos valores dos parâmetros, o método pode seguir caminhos que não possuem return. Todo caminho de um método não-void deve retornar algum valor.

Criado 1 de setembro de 2012
Ultima resposta 1 de set. de 2012
Respostas 2
Participantes 3