首页 > 其他分享 >斐波拉契数列

斐波拉契数列

时间:2023-04-22 23:58:02浏览次数:40  
标签:return 数列 23 int 波拉 兔子 fun

古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

 

先写出来前几个月的兔子数,分别是1、1、2、3、5、8、13、21、34......

就是这样一组数列,第三个数是前两个数的和,也就是n=(n-1)+(n-2)

 

 

#include<iostream>
using namespace std;
int main()
{
    int m[23];//定义一个数组,把每个月兔子数放入
    m[0] = m[1] = 1;//第一个月和第二个月都是一只兔子
    for (int i = 0; i < 23; i++)
    {
        if (i == 0 || i == 1)
        {
            cout << "1" << endl;//第一个月和第二个月输出1
        }
        else
        {
            m[i] = m[i - 1] + m[i - 2];
            cout << m[i] << endl;//其他月份都是上两个月的和
        }
    }
    return 0;
}

 

或者用另一种方法

#include<iostream>
using namespace std;
int fun(int m)
{
    if (m == 1 || m == 2)
        return 1;
    else
        return fun(m - 1) + fun(m - 2);
}
int main()
{
    return 0;
}

迭代

假如输入一个数n 

fun(n)=fun(n-1)+fun(n-2)

fun(n-1)=fun(n-3)+fun(n-2)

fun(n-2)=fun(n-3)+fun(n-4)

.........

一直会到fun(3)=fun(1)+fun(2)=2

但是这个只能输出特定月份的兔子数

标签:return,数列,23,int,波拉,兔子,fun
From: https://www.cnblogs.com/lllyclh/p/17344480.html

相关文章

  • 最长等差数列
    给你一个整数数组nums,返回nums中最长等差子序列的长度一.动态规划该题类似最长递增子序列dp[i][j]定义为以i为结尾,公差为j的最长等差数列长度classSolution{public:intlongestArithSeqLength(vector<int>&nums){//dp[i][j]定义为以i为结尾,公差为j的最长......
  • 1027. 最长等差数列
    给你一个整数数组 nums,返回nums 中最长等差子序列的长度。回想一下,nums的子序列是一个列表 nums[i1],nums[i2],...,nums[ik],且 0<=i1<i2<...<ik<=nums.length-1。并且如果 seq[i+1]-seq[i]( 0<=i<seq.length-1)的值都相同,那么序列 seq 是等差......
  • 剑指Offer——10-I.斐波那契数列(c语言)
    title:剑指Offer10-I.斐波那契数列(c语言)写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列的定义如下:F(0)=0,F(1)=1F(N)=F(N-1)+F(N-2),其中N>1.斐波那契数列由0和1开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取......
  • 【ACM算法竞赛日常训练】DAY16【奇♂妙拆分】【区区区间间间】【小AA的数列】数学 |
    DAY16共3题:奇♂妙拆分(简单数学)区区区间间间(单调栈)小AA的数列(位运算dp)......
  • 斐波那契额数列
    #include<stdio.h>Fib(intn) //n代表第几个数{ if(n==1||n==2)return1; elsereturnFib(n-1)+Fib(n-2);}fib(intn) //列出前n个数{ intfib1=1,fib2=1; intfib; printf("%12d%12d",fib1,fib2); for(inti=3;i<=n;i++......
  • 洛谷P7492 [传智杯 #3 决赛] 序列 题解 数列分块
    题目链接:https://www.luogu.com.cn/problem/P7492解题思路:分块。解题思路全部来自yzy1大佬的博客额外掌握技能:编译时加入-Wall参数。示例程序:#include<bits/stdc++.h>usingnamespacestd;constintmaxn=1e5+5;intn,m,blo,//n表示数列长度,m表......
  • (已改正)第十四届蓝桥B组省赛回忆版 E: 接龙数列
    目录E:接龙数列原题错误版改正版DP写法E:接龙数列原题时间限制:1s内存限制:256MB题目描述对于一个长度为K的整数数列:A1,A2,...,AK,我们称之为接龙数列当且仅当Ai的首位数字恰好等于Ai−1的末位数字(2≤i≤K)。例如12,23,35,56,61,11是接龙数......
  • 分析以下数字的规律1 1 2 3 5 8 13 21用Python语言编程实现输出,此为斐波那契数列
    方法一:list1=[]#定义一个空列表foriinrange(15):#遍历语句循环15次ifi==0ori==1:#前两个数字的值都是1list1.append(1)#print(list1)else:list1.append(list1[i-1]+list1[i-2])print(list1)方法二:list1=[1,......
  • 蓝桥杯——整除数列
     题解:#include<bits/stdc++.h>usingnamespacestd;intmain(){longlongn;cin>>n;while(n>0){cout<<n<<"";n=n/2;}}......
  • 尾置const:参数列表相同却重载的函数
    观察下面两个函数,它们具有相同的参数列表,貌似无法重载:   string&operator[](size_tn){returnelements[n];}2.   conststring&operator(size_tn)const {returnelements[n];}但实际上,函数2的尾置const使得对*this进行了筛选,于是:当非const对象调......