• C++用递归实现斐波那契数列


    【题目描述】

    菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。

    给出一个正整数a,要求菲波那契数列中第a个数是多少。

    【输入】

    第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1≤a≤20)。

    【输出】

    输出有n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数的大小。

    【输入样例】

    4
    5
    2
    19
    1
    

    【输出样例】

    5
    1
    4181
    1

    来自一枚刚学不久小蒟蒻,

    第一次发博客;

    记得zhx说过:

    “要想理解递归,就要先理解递归”

    emmm真是一点毛病都没有啊!!!

    递归就是一个函数,

    不停的调用自己,

    为了防止死循环,

    需要加特判;

    递归主要是找到那个类似公式的东西(我也不知道叫啥);

    然后写一个函数,调用自己;

     1 #include<iostream>
     2 using namespace std;
     3 int fib(int);
     4 int main()
     5 {
     6     int n,a[200];
     7     cin>>n;
     8     for(int i=1;i<=n;i++)
     9         cin>>a[i];
    10     for(int i=1;i<=n;i++)
    11     {
    12         cout<<fib(a[i])<<endl;
    13     }
    14     return 0;
    15 }
    16 int fib(int x)
    17 {
    18     if(x<=0) return 0;
    19     if(x<=2) return 1;
    20     return fib(x-1)+fib(x-2);
    21 }

    每日打卡O(∩_∩)O

    看不见我看不见我看不见我
  • 相关阅读:
    expect
    grep
    Python函数
    Python的set
    Python字典
    Python循环
    Python条件判断
    Python列表
    Python字符串
    Python组织代码块的形式
  • 原文地址:https://www.cnblogs.com/sxy2004/p/11450492.html
Copyright © 2020-2023  润新知