斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89…
这个数列从第3项开始,每一项都等于前两项之和。
斐波那契数列的定义者,是意大利数学家莱昂纳多·斐波那契(Leonardo Fibonacci),生于公元1170年,卒于1250年,籍贯是比萨。
他被人称作“比萨的莱昂纳多”。
1202年,他撰写了《算盘全书》(Liber Abacci)一书。
他是第一个研究了印度和阿拉伯数学理论的欧洲人。
他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点于阿尔及利亚地区,莱昂纳多因此得以在一个阿拉伯老师的指导下研究数学。
他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯等地研究数学。
另外斐波那契还在计算机C语言程序题中应用广泛
斐波那契数列
问题的描述
如下几点所示
本文C语言经典算法实例的编译环境,使用的是集成开发环境:Visual Studio 2019
Visual Studio 2019官网链接如下
Visual Studio 2019集成的开发环境的特点有
包含头文件 代码如下所示
#pragma once
// 包含头文件
#include
#include
声明变量 代码如下所示。
// 声明变量。
long f1, f2, i;
f1 = f2 = 1; /*前两项为 1*/
输出提示信息 代码如下所示
// 输出提示信息。
printf("斐波那契数列(Fibonacci)的前20项有\n\n");
按F5进行编译,调试结果如下所示。
输出斐波那契的第1项和第2项的值 代码如下所示
// 输出斐波那契的第1项和输出第2项。
printf("%6d%6d", f1, f2);
按F5进行编译,调试结果如下所示。
计算和输出斐波那契第3项到第20项的值,代码如下所示
///
/// 计算和输出斐波那契的第3项到第20项。
///
for (i = 3; i <= 20; i += 2)
{
for (i = 3; i <= 20; i += 2)
{
// 计算下两项
f1 = f1 + f2;
f2 = f1 + f2;
// 每输出十项换行
if (i % 11 == 0)
{
printf("\n");
}
// 输出f1,f2
printf("%6d%6d", f1, f2);
}
}
printf("\n");
按F5进行编译,调试结果如下所示。
求斐波那契数列的前20项函数声明 代码如下所示
///
/// 求斐波那契数列的前20项函数声明
///
void FibonacciSequence();
求斐波那契数列的前20项函数定义 代码如下所示
///
/// 求斐波那契数列的前20项的函数定义
///
void FibonacciSequence()
{
// 声明变量。
long f1, f2, i;
f1 = f2 = 1; /*前两项为 1*/
// 输出提示信息。
printf("斐波那契数列(Fibonacci)的前20项有\n\n");
// 输出斐波那契的第1项和第2项。
printf("%6d%6d", f1, f2);
///
/// 计算和输出斐波那契的第3项到第20项。
///
for (i = 3; i <= 20; i += 2)
{
for (i = 3; i <= 20; i += 2)
{
// 计算下两项
f1 = f1 + f2;
f2 = f1 + f2;
// 每输出十项换行
if (i % 11 == 0)
{
printf("\n");
}
// 输出f1,f2
printf("%6d%6d", f1, f2);
}
}
printf("\n");
}
// 调用求斐波那契数列的前20项的函数
FibonacciSequence();
printf("\n");
按F5进行编译,调试结果如下所示。
经典算法实例程序完整代码如下所示
#pragma once
// 包含头文件
#include
#include
///
/// 求斐波那契数列的前20项函数声明
///
void FibonacciSequence();
#define _CRT_SECURE_NO_WARNINGS
#include "Main.h"
///
/// 主函数
///
/// 返回0
int main()
{
system("color 3E");
// 调用求斐波那契数列的前20项的函数
FibonacciSequence();
printf("\n");
system("pause");
return 0;
}
///
/// 求斐波那契数列的前20项的函数定义
///
void FibonacciSequence()
{
// 声明变量。
long f1, f2, i;
f1 = f2 = 1; /*前两项为 1*/
// 输出提示信息。
printf("斐波那契数列(Fibonacci)的前20项有\n\n");
// 输出斐波那契的第1项和第2项。
printf("%6d%6d", f1, f2);
///
/// 计算和输出斐波那契的第3项到第20项。
///
for (i = 3; i <= 20; i += 2)
{
for (i = 3; i <= 20; i += 2)
{
// 计算下两项
f1 = f1 + f2;
f2 = f1 + f2;
// 每输出十项换行
if (i % 11 == 0)
{
printf("\n");
}
// 输出f1,f2
printf("%6d%6d", f1, f2);
}
}
printf("\n");
}
本文的C语言经典算法实例:斐波那契数列,要实现的目标如下
文到这里就结束啦。
希望本文的C语言经典算法实例:斐波那契数列
能激发你对C语言以及算法学习的热爱。