所以我正在制作一个项目,该函数可以获得第n个斐波纳契数列的函数。我不认为有任何错误,但我对结果不满意,我无法解决。
错误: - 当您输入数字时,控制台返回0
#include <cmath>
using namespace std;
int input(string msg)
{
int number = 0;
while(number >= 0)
{
cin >> number;
return 0;
}
return 0;
}
int fib(int n)
{
if ( n == 0 ) return 0;
if ( n == 1 ) return 1;
return fib(n-1) + fib(n-2);
}
int main()
{
int fibonacci = input("Input a position");
int fibber = fib(fibonacci);
cout << fibber;
return 0;
}
答案 0 :(得分:3)
您的input
函数返回零。您想要返回number
。同时循环应该运行,直到输入的数字大于零(我认为这是你的意图)。
int input(string msg)
{
int number = 0;
while(number <= 0)
{
cout << msg;
cin >> number;
}
return number;
}