Scanner + String

2 respostas
G

Pessoal eu voltei a tentar fazer em java uma soma de numero grande usando bigInteger. Mas ta dando muita dor de cabeça. Então eu fiz uso das classes do Scanner + String + Biginteger. Tipo assim, tenho que fazer uma potencia de 2 elevado a 1000. Isso eu ja consegui fazer. Até consegui transformar isso em String. Mas agora eu tenho que pegar o resultado e soma-lo. Exemplo. 2 elevado a 5 = 32 a soma seria 3 + 2 = 5; So que quando eu faço com o meu problema ele gera uma exception. Olha ai pessoal o pedaço do codigo:

BigInteger bi = new BigInteger("2");
		String num = "";
		int soma = 0;
		int nume = 0;
		
	String n = bi.pow(1000).toString();
		
		Scanner scan = new Scanner(n);
		while(scan.hasNext()){
			num = scan.next();
		    nume = Integer.parseInt(num);
			soma +=nume;
			
		}
		scan.close();

Agradeço desde ja se alguem tiver uma luz. Eu to treinando para maratona…
valeu pessoal.

2 Respostas

Ironlynx

Perai, vc tá dando um parseInt naquele número monumental para transformar de novo em inteiro?Q eu me lembre, um int tem 2^31-1, se vc passar 2^1000 sempre vai dar um exceção!PAra lidar com números absurdos, só BigInteger e BigDecimal mesmo, não vai dar para lidar com inteiros!

ViniGodoy

Ao invés do scanner, tente usar o método getBytes() da própria String.

Cada byte retornado será o valor ascii do caracter da string. O 0 portanto é retornará o byte com valor 48, o 1 um caracter de valor 49 e assim por diante.

Criado 7 de setembro de 2007
Ultima resposta 8 de set. de 2007
Respostas 2
Participantes 3