C++ 中的斐波那契打印问题
fibonacci print out issue in c++
我试图运行fib.exe,使用以下命令"fib 12",以便它可以直接以这种格式打印出结果:http://pastebin.com/ytR92i8f
但是随着我的代码编译,例如,如果我使用 12 来测试我的程序,它不会读取任何数字并在此命令"fib xx"中显示结果,但它将运行程序并让您在下一行输入您想要的数字,然后打印出结果......
我已将链接附加到我的主.cpp下面作为参考。
主要.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;
}
这是一个例子。像斐波那契这样的问题最好用递归来处理。我看到通过您的 do while 循环,您正在尝试使用某种递归,但它并没有真正起作用
int fibonacci(int x)
{
if (x == 0)
return 0;
if (x == 1)
return 1;
return fibonacci(x-1)+fib(x-2);
}
这基本上可以完成您在主目录中键入的所有内容,只需提供 x 即可享受。递归是一个困难的概念,但是一旦你有了这个想法,它就可以非常有效地进行预处理,但在我看来它是非常有限的。
相关文章:
- 打印时有二叉树问题.用户输入不打印任何内容
- 打印问题.我在数组中打印值时遇到一些问题
- 我的问题是关于C++中数字和序列的重复以及如何打印它们?
- 在C++中打印对的优先级队列的所有值时出现问题
- C++正确书写和打印复数精度 (cout) 的问题?
- 打印系列时循环出现问题
- 问题导致程序停止响应,并且姓氏未正确打印
- 使用 fstream 库并在屏幕上打印的文件有问题?
- 数组打印"random"值时出现问题
- 面临在 if 语句之外打印变量数据的问题 完成使用 Qt 编程
- 面对迭代矢量<矢量<string>>和打印数据的问题
- 有没有办法用单行逻辑代码打印金字塔星形图案?面试官向我的朋友问了这个问题
- 按列打印二维数组时出现问题
- 这个随机字符串打印代码有什么问题?
- 策划者游戏打印问题#
- C++ 中的斐波那契打印问题
- C++链表排序、拆分和打印问题
- C++自定义堆栈打印问题
- 简单的输入/输出控制台应用程序,不按给定的顺序(结构)打印问题
- 链表打印问题