我打印了在main()中调用函数的Fibonacci数字:
cout << Fibonacci(HowMany, LastOne) << endl;
功能本身是:
// function definition
unsigned long long Fibonacci(int InHowMany, char InLastOne)
{
// assigning two initial numbers
unsigned long long Num1 = 0, Num2 = 1;
// choosing the loop based on the user's choice of LastOne
if(InLastOne == 'p')
{
// printing the initial two values
cout << "0" << endl;
cout << "1" << endl;
// iterating to print all the other values
for (int i = 1; i < InHowMany; ++i)
{
unsigned long long Num2Temp = Num2;
Num2 += Num1;
Num1 = Num2Temp;
// printing every value on the way with this instruction
cout << Num2 << endl;
}
}
// case when we just need to print the last number
else if(InLastOne != 'p')
{
for (int i = 1; i < InHowMany; ++i)
{
unsigned long long Num2Temp = Num2;
Num2 += Num1;
Num1 = Num2Temp;
// return condition
if(i == InHowMany - 1)
{
return Num2;
}
}
}
}
所以它有效,但不知怎的,它总是在程序的最后返回HowMany \ InHowMany数字。我知道这可能(虽然,我不确定)发生在循环之外,因为我尝试了COUTing一些随机字符串并且HowMany \ InHowMany出现在它之后......