1.了解斐波那契数列的组成
计算斐波那契数列第一步,要先了解斐波那契数列是什么样的
斐波那契数列:0 1 1 2 3 5 8 13 21...
2.斐波那契数列是怎么计算出来的?
相信这是很多刚开始学习编程会接触到的一个数列,除了斐波那契数列还有杨辉三角等这样的数列。有些小萌新学习斐波那契数列的时候,不能理解计算斐波那契数列的代码是怎么计算出来的。
其实这种数列很简单,由上面我们了解到了斐波那契数列是怎么组成的,那么现在我们在记斐波那契数列的时候可以只记前两个 0和1 或者 前三个 0,1,1 (当我们看到0,1,1 这样的数组,就能大致确定这个数组是斐波那契)由前面2个数0和1就能依次计算出后面的数值。那么现在我们来看怎么往下继续“续写”斐波那契数列:
斐波那契数列的组成我们可以分为3部分,这三部分我们分别叫做:a(1),a(2),a(3);它们分别对应的是第一个,第二个,第三个数 从斐波那契数列的前三个开始看,a(1)=0,a(2)=1,a(3)=1;那么a(3)是怎么算出来的呢?a(3)是0和1的和,即a(3)=a(1)+a(2)(a(3)=0+1),由此我们可见,后面的值等于前面2个数的和,以此类推,a(4)=a(3)+a(2),a(4)=2
因此,第n个数a(n)=a(n-1)+a(n-2);这样我们就知道怎么计算斐波那契数列了,下面上代码:
3.斐波那契数列代码
下面通过数组打印前10个斐波那契数列:(如果还没学数组,没关系,最下面一个是直接边赋值边打印)
#include <stdio.h> int main() { //数组下标从0开始,因此下标是0的数组就是第1个值 int a[10]={0}; //定义从0-9的数组a用来存放斐波那契数列 int i;//定义for循环变量i a[0]=0; a[1]=1; //for循环从第三个开始赋值,因为前面已经给第一个和第二个赋值了 for (i=2;i<10;i++) { a[i]=a[i-1]+a[i-2]; } //赋值完成以后,开始打印 for(i=0;i<10;i++) { printf("%d\t",a[i]); } return 0; }
一边给计算斐波那契数列,一边输出前10个斐波那契数列:
#include<stdio.h> int main() { int num1,num2,num3; //定义三个变量 num1=0; num2=1; //给第一个和第二个数赋值 int i;//定义循环变量 printf("%d\t%d\t",num1,num2) ;//打印前两个值 for(i=3;i<11;i++)//从第三个开始打印 { num3=num1+num2; //第三个数等于前两个数之和 num1=num2; //第一个存放的值往后移一个,存放的是第二个数值,即,num1=num2 num2=num3; //第二个存放的值往后移一个,存放第三个值,即,num2=num3 printf("%d\t",num3); } return 0; }