Variavel

Olá pessoal estou aprendendo java.

Foi me passado o seguinte exercicio:

Efetuar o cálculo e apresentar o somatório do número de grãos de trigo que se pode obter num tabuleiro de xadrez, obedecendo à seguinte regra: colocar um grão de trigo no primeiro quadro e nos quadro seguintes o dobro do quadro anterior, efetuando o somatório de cada quadro. Assim sendo, no primeiro quadro coloca-se 1 grão, no segundo quadro coloca-se 2 grãos( nesse momento têm-se 3 grãos), no terceiro quadro coloca-se 4 grãos( tendo nesse momento 7 grãos), no quarto quadro coloca-se 8 grãos ( tendo-se então 15 grãos) até atingir o sexagésimo quarto quadro.

Eu consegui fazer a logica esta certa.

class ex10 { public static void main(String args[]) { int e; float quadro=1,resp=1; for(e=1;e<64;e++) { quadro= quadro*2; resp=resp+quadro; } System.out.print("\n "+resp); } }

mas quando compilo aparece o resultado: 1.8446744073709552[color=brown]E[/color]19 (OBS; Esse E não esta certo)

esse E que aparece na resposta esta errado. Falei com meu professor ele disse q tenho q achar uma variavel de maior capacidade.

Jah tentei usar double mas não deu certo.

Por favor algum pode me ajudar.

Obrigado.

O resultado esperado é 2 elevado a 64 menos 1, ou seja, 18446744073709551615,
ou em notação científica (que você não está reconhecendo, mas é esse “E” que apareceu no número), seria
1,8446744073709551615e+19.

Você nunca usou a calculadora do Windows em modo científico?

Pois é.

Sua conta está certa.

Se quiser todos os dígitos (conforme eu calculei na calculadora do Windows), você precisa usar BigInteger, não double, float ou mesmo long. OK?