Laço For com BigInteger

8 respostas
D

Basicamente o que eu quero é um laço For que repita muitas vezes. Pensei em tentar usar o While, porém a parte importante não é só o laço, mas também a variável carregando um valor crescente.

for(int i = 0; i <= 10000; i++){
   code...
}

Teria como fazer algo do tipo:

BigInteger ij = new BigInteger("1");
        for(ij; ij.equals(result); ij.add("1")){
            code...
        }

Ps.: ‘result’ já é um BigInteger carregando um valor imenso, mas o IDE não me deixa usar dessa maneira aí. Enfim, é possível fazer um laço usando BigInteger?

8 Respostas

pmlm
BigInteger result = new BigInteger("10");
         BigInteger ij = new BigInteger("1");  

         for(; ij.compareTo(result) < 0; ij = ij.add(BigInteger.ONE)){  
             System.out.println(ij);  
         }
E

Digamos que você quisesse rodar um laço for que fosse de 0 até o maior long possível ( 9223372036854775807 ).
Esse loop, vazio (supondo que cada iteração levasse 0,1 nanossegundo, ou seja, 1 ciclo de clock de um processador de 10 GHz) levaria 29 anos e meio para ser executado.
Ou seja, provavelmente você não precisa de um BigInteger.

D

Obrigado, acabei de rodar o laço…

Ele vai de 1 até (9671406556917033397649408).
Quer dizer então que eu não preciso contar com ele terminar isso hoje? ;x

ViniGodoy

Quem sabe ele não está na JVM de um computador quântico?

ganondorfan

Chuck Norris rodou esse laço duas vezes, hoje antes do almoço!

ViniGodoy

E contando nos dedos!

thiago.correa

E contando nos dedos!

Utilizando apenas a mão esquerda do Lula!

thiagobaptista

Esse fórum tem uma capacidade impressionante de gerar pérolas.

Depois do cara das tabelas…

Criado 24 de setembro de 2010
Ultima resposta 24 de set. de 2010
Respostas 8
Participantes 7