Você já teve alguma vez um problema de matemática que precisava de calcular um valor muito grande e não conseguiu porque o computador não tinha um número de precisão suficientemente grande?
Em muito casos a classe BigInteger pode ser uma boa solução. Vamos ver o caso do fatorial por exemplo. Tente fazer o fatorial de 20 ou 21 em uma calculadora, no excel ou outro programa. Você vai receber uma mensagem de erro ou um valor convertido para real. Por exemplo a calculadora do meu linux retorna
Vamos tentar no java com BigInteger:
Bacana!!! Quer ver o código que gerou isto? Continue lendo...
import java.math.BigInteger;
public class CalculaFatorial {
// funcao que calcula o fatoria de um numero n
// n tem que ser maior do que ou igual a 0
public static BigInteger fatorial( BigInteger n ) {
if (n.compareTo( BigInteger.ONE ) <= 0 ) {
return BigInteger.ONE;
} else {
return n.multiply( fatorial( n.subtract(BigInteger.ONE) ) );
// n = n * f(n-1) --> recursao
}
}
// recebe como parâmetros o numero que iremos calcular o fatorial
public static void main( String[] args ) {
if (args.length < 1) {
System.out.println("Uso: java CalculaFatorial n");
System.exit(0); // sair
} else {
BigInteger n = new BigInteger( args[0] );
System.out.printf(" Fatorial de %d = %d\n", n, fatorial(n) );
}
}
}
Nenhum comentário:
Postar um comentário