我试图通过使用此命令“fib 12”来运行fib.exe,因此它可以直接以这种格式打印出结果: http://pastebin.com/ytR92i8f
但是编译我的代码,例如,如果我使用12来测试我的程序,它不会读取任何数字并在此命令“fib xx”中显示结果但是它将运行程序并让你输入你想要在下一行编号,然后打印出结果......
我已将链接附加到我的main.cpp下面作为参考。
main.cpp:http://pastebin.com/fhUAkNQR
因为main.c无法修改所以我只能使用一个函数来使它工作。 现在我已经有了正确的结果。
void fibonacci(int max)
{
do
{
std::cin >> max;
}
while(max < 2 && max > 46);
std::cout << " Fibonacci Fibonacci" << std::endl;
std::cout << " N number quotient" << std::endl;
std::cout << "-------------------------------------" << std::endl;
std::cout << " 0 0 N/A" << std::endl;
std::cout << " 1 1 N/A" << std::endl;
int count = max;
int fib1 = 0, fib2 = 1;
for (int i = 2; i <= count; i++)
{
int next = fib1 + fib2;
// Add statements to print here...
std::cout << std::setw(2) << i;
std::cout << std::setw(14) << next;
std::cout << std::setw(21) << std::setprecision(17) << std::showpoint;
std::cout << static_cast<double>(next) / fib2 << std::endl;
std::cout.unsetf(std::ios_base::showpoint);
fib1 = fib2;
fib2 = next;
}
return;
}
答案 0 :(得分:0)
这里和例子。像Fibonacci这样的问题可以更好地处理递归。我看到你用do while循环尝试使用某种递归,但它并没有真正起作用
int fibonacci(int x)
{
if (x == 0)
return 0;
if (x == 1)
return 1;
return fibonacci(x-1)+fib(x-2);
}
这基本上都是你在主要内容中键入的内容,只需提供x并享受。递归是一个困难的概念,但是一旦你有了这个想法就可以非常有效地进行预测,但在我看来它非常有限。