首页 > 其他 > 详细

递归--斐波那契数列

时间:2021-03-31 14:19:18      阅读:25      评论:0      收藏:0      [点我收藏+]
#include <stdio.h>
//斐波那契数列的非递归实现
int f(int n)
{
    int a,b,sum;
    sum=0;
    a=1;b=1;
    if (n==1||n==2)
        return 1;
    for (int i = 2; i < n; ++i) {
        sum=a+b;
        a=b;
        b=sum;
    }
    return sum;
}
//斐波那契数列的递归求解
/*
 * 斐波那契数列解决办法
 *  1.先罗列一些序列,看是不是有规律,
 *  2.如果能把一个大问题分解为一个小问题,则使用递归
 *
 * 递归问题:
 *  1.递归函数定义形式  int f_f(int n)
 *  2.递归条件    if(n>2){递归},if(n==1||n==2) return 1;
 *  3.递推表达式   f(n)=f(n-1)+f(n-2)
 */
int f_f(int n)
{
    if (n==1||n==2)
    {
        return 1;
    }
    return f_f(n-1)+f_f(n-2);
    //把f(n-1)+f(n-2)传入int f_f(int n),就构成了递推表达式,f_f(n)=f_f(n-1)+f_f(n-2)
}
int main()
{
    int n;  //项数

    scanf("%d",&n);
    
    int i=f(n);
    printf("第n项为:%d\n",i);
    
    i=f_f(n);
    printf("第n项为:%d\n",i);
    return 0;
}

 

递归--斐波那契数列

原文:https://www.cnblogs.com/nanfengnan/p/14600653.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!