最简单理解并实现斐波那契数列函数(c语言)

实现斐波那契数列数列函数前我们要知道它是什么?

最简单理解就是一个数列为:0 1 1 2 3 5 8 13 21。。。。。。

第一个数为0第二个数为1,之后的每个数为前面两个数的的和(是不是很简单呢)

第二步就是实现它了!

第一种方法是循环(for循环)

#include<stdio.h>//(这里引下头文件)

int main()

{

int a=0;//(初始化你要找的数)

scanf("%d",&a);//(赋值给它噢)

int n1=0;//(定义第一个数)

int n2=1;//(定义第二个数)

int n=1;//(定义第三个数)

int i=0;//(为循环找循环数)

if(a==1)//(如果是第一个数直接输出0)

{

return printf("0\n");

}

else if(a==2)//(如果是第二个数直接输出1)

{
 return printf("1\n");

}



else

{

for(i=0;i<a-2;i++)//(因为已经排除了前面两个数,从第三个数开始,所以要n-2噢)

{n=n1+n2;//第三个数等于前面两数之和

n1=n2;//第一个数等于第二个数

n2=n;//第二个数等于第三个数

}

//上面循环的意思就是三个数三个数的依次遍历斐波那契数列,直到找到你要的数噢

return printf("%d\n",n);//找到了直接返回它

}

//到这里循环实现就完成了噢

return 0;

}

//第二种方法是递归

 

#include<stdio.h>//(这里引下头文件)

int is_num(int n)//递归
{
    if (n == 1 )
    {
        return 0;//如果是第一个数直接返回0
    }
    else if (n == 2)
    {
        return 1;//如果是第二个数直接返回1
    }
    else
        return is_num(n - 1)+ is_num(n-2);//直接返回前n两个数依次迭代计算直到计算到第一个数和第二个数为止

}
int main()
{

    int n = 0;//(初始化你要找的数)
    scanf("%d", &n);//(赋值给它噢)
    int ret = is_num(n);//调用这个函数,在这个函数里面实现递归,把n的值传过去并用一个整形来接收递归函数的返回值
    printf("%d", ret);

    return 0;
}

好了,到这里两种方法都说完了。你学会了吗!!!?

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值