lógica de programação
Oi estava vendo um exemplo e me surgiu a seguinte dúvida, Porque caso eu digite o número 5, a variável "resultado" terá o valor 5 ? Pois o "for" não tem nada que o condicione a parar, qual é o critério que ele usa para parar ? Obrigado pela paciência
#include <iostream>
using namespace std;
long forFibo(long posicao);
int main()
{
long resposta pos;
cout << "\nDigite a posicao na serie: ";
cin >> pos;
resposta= forFibo(pos);
cout << "\nPosicao = "
<< pos
<< ", Num. Fibonacci = " << resposta<< "\n";
system("PAUSE");
return 0;
}
long forFibo(long posicao)
{
long menosDois,
menosUm = 1,
resposta = 2;
if(posicao < 3)
return 1;
for(posicao -= 3; posicao; posicao--)
{
menosDois = menosUm;
menosUm = resposta;
resposta = menosUm + menosDois;
}
return resposta;
}
OBS: Digamos que eu digite o número 5 ...
...
if(posicao < 3)
return 1;for(posicao -= 3; posicao; posicao--) // 5-4 aqui ... = 1 posição decairá para 1
{
menosDois = menosUm; // Menosdois = 1
menosUm = resposta; // menosum = 2
resposta = menosUm + menosDois; // resposta = 3
}
MenosDois = 1MenosUm = 2
resposta = 3
Discussão (2)
Carregando comentários...