《C编程技巧:117个问题解决方案示例 》 —2.3 生成斐波那契数列
2.3 生成斐波那契数列
问题
你想开发一个程序来生成斐波那契数列。
解决方案
Leonardo Fibonacci(1180—1250),也被称为比萨的莱昂纳多,是一位意大利数学家。他撰写了许多关于数学的优秀论文,如“Liber Abaci”“Practica Geometriae”“Flos”和“Liber Quadratorum”。斐波那契数列以其发明人命名并在“Liber Abaci”中提及,从0和1开始,每个连续项都是前两个项的和。根据定义,第一项为0,第二项为1。前几项列于此处:
第一项 根据定义 0
第二项 根据定义 1
第三项 0 + 1 = 1
第四项 1 + 1 = 2
第五项 1 + 2 = 3
第六项 2 + 3 = 5
斐波那契数列中的项也称为斐波那契数。这里给出了一个可以生成斐波那契数的例程的伪代码:
编写具有以下规格说明的C程序:
程序使用for循环计算斐波那契数。
程序要求用户输入数字N(0<N≤45)。如果用户在此范围之外输入数字N,则程序会要求用户重新输入此数字。然后程序生成N个斐波那契数。
当计算出的斐波那契数显示在屏幕上时,程序会询问用户是否想要计算另一个斐波那契数或退出。
代码
以下是使用这些规格说明编写的C程序的代码。在C文件中键入以下文本(程序)并将其保存在文件夹C:\Code下名为fibona.c的文件中:
编译并执行此程序。此程序的一次运行结果如下所示:
工作原理
LOC 18~27中包含的for循环完成了大部分工作。LOC 23~26中包含的代码计算斐波那契数。LOC 19和LOC 21中包含的代码在屏幕上显示计算出的斐波那契数。在此程序中使用具有两层嵌套的do-while循环。只要用户未能在指定范围内输入数字N,内部do-while循环就会将用户保持在循环内。只要用户想要再次计算斐波那契数,外部do-while循环就会将用户保持在循环内。内部do-while循环增加了此程序的稳健性。除了for循环之外,还可以使用while或do-while循环来计算斐波那契数。斐波那契数列在植物学、电网理论、搜索和排序中有应用。
- 点赞
- 收藏
- 关注作者
评论(0)