public class p2 {
public static void main(String[]args){
long x=1,y=2,sum=0;
while(y<4000000 & x<4000000){
x=x+y;
y=y+x;
sum+=x+y;
System.out.println(" x:"+x+" y:"+y+"\tsum="+sum);
}
sum+=+3-x-y;
System.out.println("sum="+sum+"\t\t"+x+" "+y);
//System.out.println(" x:"+x+" y:"+y);
}
}
Problema com exércício de seqüencia Fibonacci - Ajuda!
14 Respostas
precisa de números extremamente grande, use BigInteger...
para somar BigInteger...
BigInteger x = BigInteger.ZERO;
BigInteger y = BigInteger.ONE;
x = x.add(y);
y = y.add(x);
sum = sum.add(x).add(y);
já to usando o long!
como se usa o bigInteger?
como se usa o bigInteger?
BigInteger x = BigInteger.ZERO; //o mesmo que BigInteger x = new BigInteger("0");
BigInteger y = BigInteger.ONE; //o mesmo que BigInteger y = new BigInteger("1");
x = x.add(y); //x = x + y;
y = y.add(x); //y = y + x;
sum = sum.add(x).add(y); // sum = sum + x + y
dai agora o condicional “while” não pode ser usado!
e afinal onde foi q estourou?
dai agora o condicional "while" não pode ser usado! e afinal onde foi q estourou?
logico que pode
BigInteger valueMaximum = new BigInteger("4000000");
//x.compareTo(valueMaximum) retorna um int,
//menor que zero, quando x é menor que valueMaximum,
//maior que zero, quando x é maior que valueMaximum,
//igual a zero, quando x e valueMaximum são iguais.
while(x.compareTo(valueMaximum) < 0 && y.compareTo(valueMaximum) < 0) {
...
}
compareTo é um teste de ordenação, padrão usado em java, para verificar se um objeto vem antes ou depois de outro... qualquer objeto pode implementar esse teste, implementado a interface Comparable...
Falei não tinha estourado antes!
Deu o mesmo resultado
eita! PROBLEMA SEM SOLUÇÃO
vo fala viw
Falei não tinha estourado antes!
Deu o mesmo resultado
o q vc ker ?? … a resposta para o indice 4.000.000 da sequencia de fibonaci ?? ou vc ker somar todos os valores do indice 1 ao indice 4.000.000 ??
a soma dos índices de 1 aos menores q 4,000,000
olha vc mesmo o problema ta ai:
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …
Find the sum of all the even-valued terms in the sequence which do not exceed four million.
Cuidado com problemas que você pega da Internet. Principalmente quando estão em outras línguas…
“even-valued” significa números pares.
Oo
Brigadão