今天来讲一个很常见的代码——斐波那契数列,虽然有很多人都发布了,但是我这次想要做一个比较深层次的分析!
编程求fibonacci数列:1,1,2,3,5,8……的前n个数。
首先我们先来解析一下这个数列的规律(太难了,到了大学还要解高中知识)
根据这个规律可以得到一个数列,即: F1=1 (n=1)
F2=1 (n=2)
Fn=Fn-1+Fn-2 (n>=3)
其实通俗易懂(偷笑)
#include <stdio.h> // 标准输入输出库函数
int Fibon1(int n) //写出一个斐波那契函数Fibon1
{
int a=1; //给a,b,c赋值赋值为1,由斐波那契数列的规律可知
int b=1;
int c=1;
for(int i=2;i<n;i++) //做循环
{
c=a+b; //Fn=Fn-1+Fn-2 (n>=3) 将c看做Fn
a=b; //将a看做Fn-2
b=c; //将b看做Fn-1
}
return c; //最后将c的值返回
}
int main() // 定义main函数
{
int n,i; //定义n,i
scanf("%d",&n); //输入整数存入n中
for(i=1;i<=n;i++) //做循环将c的值一个一个输出
{
printf("%12d",Fibon1(i));
if(i%4==0) //每输出四个数换行
printf("\n");
}
return 0;
}
当n=1或2时,Fibon1中的for不执行直接输出c=1。当n=3时执行for语句循环,对于for不懂的,可以看我接下来几天要发的文章,你会对for有一个深刻的理解!详细的内容写在我的代码//后,有每一句的解析。
多多重复,百炼成钢!(昨天忙忘了,今天赶快写。)不懂的可以在评论区留言,欢迎大家来讨论。