Fatorial

2 respostas
G

Sou novo aqui. E to fazendo um aplicação remota em fatorial que a classe cliente que faça 4 requisições e retorne o valor do fatorial dessas requisições.

Um valor de uma variável BigInteger. Tenho que ter uma idéia de como vou implementar esse cliente

public long calculaFatorial( long numero ){
		
		if ( numero == 1 ){
			return numero; //condição de parada;
		}
		return numero * calculaFatorial( numero - 1 );
		
	}
	
	public BigInteger calculaFatorial( BigInteger numero ){
		
		if ( numero.equals(BigInteger.ONE) ){
			return numero; //condição de parada;
		}
		return numero.multiply(calculaFatorial( numero.subtract(BigInteger.ONE) ) );
		
	}

Obrigado.

2 Respostas

Gustavokt

E como a outra classe vai acessar a que faz as contas?

M

Recursão é o método mais “limpo” visualmente de se calcular um fatorial, mas não é o melhor.

Um laço comum costuma ter um desempenho bem mais aceitável.

Outra coisa: você deveria verificar se o número passado como argumento não é menor do que 1 (pois se for, não há fatorial para calcular).

Quanto a enviar os números pela rede, um long é fácil de ser enviado. E um BigInteger também (uma vez que ele é serializável).

O que você precisará fazer é criar uma espécie de protocolo que identifique quando foi enviado um long ou quando foi enviado um BigInteger para que, tanto o cliente quando o servidor, saibam o que fazer com os dados que chegam.

Criado 15 de abril de 2010
Ultima resposta 16 de abr. de 2010
Respostas 2
Participantes 3