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;
    }
  • 相关阅读:
    Redis基础
    Windows 10 中 安装 RabbitMQ
    Nginx
    第二章-矩阵
    第一章-行列式
    第六章-微分方程
    第五章-多元函数
    第四章-定积分
    第三章-不定积分
    第二章-导数
  • 原文地址:https://www.cnblogs.com/Kaniso-Vok/p/13756265.html
Copyright © 2011-2022 走看看