public int operacao(int n) {
int a, b, c, d;
c = 0;
b = 1;
a = 1;
while (a < n) {
d = b + c;
c = b;
b = d;
a = a + 1;
}
return b;
}
Se eu colocar 5 no lugar de n, o valor retornado será 8?Será que estou errado!
public int operacao(int n) {
int a, b, c, d;
c = 0;
b = 1;
a = 1;
while (a < n) {
d = b + c;
c = b;
b = d;
a = a + 1;
}
return b;
}
Se eu colocar 5 no lugar de n, o valor retornado será 8?Será que estou errado!
Crie uma classe e rode esse método. É mais rápido que esperar a resposta aqui.
Sim está o valor do b no return é 5.
Pois vc interage apenas até o a = 4, quando ele é 5 ele saí do while.
Faça o debug na mão mesmo, usando chinesinho.
obrigado! sou iniciante e aqui nesse computador não tem o programa adequado!
fui um teste veja só:
[code]
public class Teste {
public int operacao() {
int a, b, c, d;
c = 0;
b = 1;
a = 1;
while (a < 5) {
d = b + c;//1
c = b;//1
b = d;
a = a + 1;
}
return b;
}
public static void main(String[] args) {
System.out.println(new Teste().operacao());
}
}[/code]
imprimiu 5
Aliás… Adorei a pergunta…
Explicação simples, o a<n vai iterar até o valor menor que 5. Pois n = 5.
eu tentei fazer na caneta com o n = 9 e deu 32!!
axo q vc errou no calculo…para n=9, o resultado de b é 34…
Geralmente nesses while o pessoal começa com o a=0, que ai ele roda o laço n vezes, ao invez de n-1 vezes
:b