zoukankan      html  css  js  c++  java
  • C语言编程实现斐波那契数列(递归与非递归)

    一.非递归

    <1>数组

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        int a[10000] = { 0 };//利用数组求不了较大位置的斐波那契数
        int i,m;
        a[0] = 1;
        a[1] = 1;
        printf("请输入要求第几个斐波那契数(大于等于2)
    ");
        scanf("%d", &m);
        for (i = 2; i <=m; i++)
        {
            a[i] = a[i - 1] + a[i - 2];
        }
        printf("所求的数是%d
    ",a[m]);
        system("pause");
        return 0;
    }

    <2> 非数组

    #include<stdio.h>
    #include<stdlib.h>
    int Fabonaci(int n)
    {
        int f1 = 1;
        int f2 = 1;
        int f3 = 1;
        int i = 0;
        for(i = 3;i <= n;i++)
        {
            f3 = f2+f1;
            f1 = f2;
            f2 = f3;
        }
        return f3;
    }
    int main()
    {
        int result,m;
        printf("请输入要求第几个斐波那契数
    ");
        scanf("%d", &m);
      result=Fabonaci(m);
        printf("所求的数是%d
    ",result);
        system("pause");
        return 0;
    }

    二.递归

    #include<stdio.h>
    #include<stdlib.h>
    int Feibo(int a[],int m)
    {
        if (m <=1)
        {
            return 1;//递归出口
        }
        return Feibo(a, m - 1) + Feibo(a, m - 2);
    }
    int main()
    {
        int a[100] = { 0 };
        a[0] = 1;
        a[1] = 1;
        int result,m;
        printf("请输入要查找哪个斐波那契数
    ");
        scanf("%d", &m);
        result = Feibo(a,--m);
        printf("所查找的数是%d
    ",result);
        system("pause");
        return 0;
    }
  • 相关阅读:
    学会用好 Visual Studio Code
    Alpha冲刺阶段博客汇总
    第二天敏捷冲刺
    第一天敏捷冲刺
    需求分析与设计
    软工网络15团队作业2——团队计划
    团队组队&灰化肥挥发会发黑
    Tomcat安装及部署
    正则表达式
    爬取腾讯疫情数据
  • 原文地址:https://www.cnblogs.com/Kaniso-Vok/p/13756265.html
Copyright © 2011-2022 走看看