Funcao recursiva[ajuda][RESOLVIDASSO]

6 respostas
D

eu queria saber como fazer uma função RECURSIVA em Java que retorne o valor do somatório da seguinte série, dado como parâmetro de entrada um valor qualquer inteiro n, onde (n>1):
[size=18]1/1 - 2/4 + 3/9 - 4/16 + 5/25 - …n/n2;[/size]

6 Respostas

davidbuzatto

Seu enunciado está difícil de entender. Acho que você cometeu alguns erros na hora de copiar ou de explicar, mas pelo o que eu entendi, pode-se aplicar algo assim.

Vamos chamar a função recursiva de “foo”.
Imagine o seguinte:foo(2) = 1/1 + 2/2^2 foo(3) = 1/1 + 2/2^2 + 3/3^2 foo(4) = 1/1 + 2/2^2 + 3/3^2 + 4/4^2 foo(5) = 1/1 + 2/2^2 + 3/3^2 + 4/4^2 + 5/5^2 ...Substituindo:foo(2) = 1/1 + 2/2^2 foo(3) = foo(2) + 3/3^2 foo(4) = foo(3) + 4/4^2 foo(5) = foo(4) + 5/5^2Sendo assim, a função recursiva é dada por:foo(n) = 1/1 + n/n^2, se n = 2 foo(n) = foo(n-1) + n/n^2, se n > 2É claro, 1/1 pode ser substituido por 1.
Agora falta vc traduzir isso para a linguagem que você está usando.

Acho que o valor 1 faz parte do seu domínio, apesar de você ter falado que a função existe apenas para n > 1…
Se fizer, a função será dada por:foo(n) = n/n^2, se n = 1 foo(n) = foo(n-1) + n/n^2, se n > 1

D

vlw kra vou tentar aqui depois te repasso

paulohms

davi13d nesse caso, você vai ter que decrementar o parâmetro até que o valor seja zerado, estou no serviço agora, não deu para testar o método, mas ficaria algo assim:

public int somatorio(int n){

	if(n%2==0)
	return n/n^2 + somatorio(n-1);
	
	else
	return n/n^2 - somatorio(n-1);
	
	}
Caso não der certo, pense em uma lógica parecida, e tente fazer o exercicio, de uma forma que você irá chamar a função novamente e decrementar o parâmetro passado.

Espero ter ajudado.

E

a fórmula deve ser


D

eu ja consegui jaja passo o codigo vlw a todossssss

davidbuzatto

Agora que vi os sinais de menos. Pensei que eram somente adições :wink:

Criado 19 de setembro de 2012
Ultima resposta 21 de set. de 2012
Respostas 6
Participantes 4