首先什么是斐波那契数列?
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称“兔子数列”,
其数值为:1、1、2、3、5、8、13、21、34……在数学上,这一数列以如下递推的方法定义:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)。
知道什么是斐波那契数列后,那么就来想一下怎么实现.
用通俗的语言来说就是数列中某一项的值等于前两项的值相加,所以这里就涉及到值的交换,这里要想推箱子一样一个一个的往后推:
1 1 2 3 5
8 13 21 34 55
89 144 233 377 610
f1=1,f2=1,f=f1+f2;//这个是对公式的描述
//接下来就是推箱子的环节
f1=f2;
f2=f;
以下是是对功能的实现:
#include <stdio.h>
int main(){
int i;
int f1=1,f2=1,f;
int cnt=0;//计数器;
for(i=1;i<100;i++){
printf("%20d",f1);cnt++;
f= f1+f2;
f1=f2;
f2= f;
//每四个为一行打印;
if(cnt>=4){
printf("\n");
cnt=0;
}
}
return 0;
}
把这个功能块封装成一个函数,要用时直接调用这个函数就行,首先可以明确知道功能函数Fibonacci()的返回值是 int 类型,
#include <stdio.h>
int Fibonacci(){
int i;
int f1=1,f2=1,f = 0; // initialize f
int cnt=0; //计数器;
for(i=1;i<100;i++){
printf("%20d",f1);
cnt++;
f = f1 + f2;
f1 = f2;
f2 = f;
//每四个为一行打印;
if(cnt>=4){
printf("\n");
cnt=0;
}
}
return f1;
}
int main(){
int result = Fibonacci(); //result接收功能函数的返回值;
printf("The 99th Fibonacci number is: %d\n", result);
return 0;
}