一道递归题
  • 板块学术版
  • 楼主kuankuan_cz
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/3/21 15:54
  • 上次更新2023/11/5 01:46:53
查看原帖
一道递归题
315766
kuankuan_cz楼主2021/3/21 15:54
#include<bits/stdc++.h>
using namespace std;
int a[95];
int n;
int f(int n){
	if(a[n])          
		return a[n];
	if(n==1) 	 
		return a[n]=2; 
	if(n==2)   
        return a[n]=3;
    return a[n]=f(n-1)+f(n-2);
}
int main(){
	cin>>n;
	cout<<f(n);
	return 0;
}

以上为:

清晨,大地穿上了薄薄的白棉袄,小T一路哼着歌踏着雪来到了学校,哇:一棵五彩缤纷的圣诞树顿时映入眼帘!树上彩带迎风飘扬,校园里人流如潮,同学们一个个伸长了手在喊:“我要,我要!”咦?他们在干什么?小T奋力挤了进去,发现是一位穿着节日盛装的圣诞老人被大家围在中间,只见圣诞老人戴着可爱的红帽子,背着一个鼓鼓囊囊的大礼包正准备发礼物呢!小T见圣诞老人都快被大家挤得喘不过气来了,就立刻上前维持秩序,他将现场的同学排成一排等待圣诞老人发放礼物。圣诞老人的礼物有两种,一种是苹果,另一种是磁铁。由于磁铁之间有磁力,两个相邻的同学如果拿到的都是磁铁,他们就会被吸在一起而无法分开,苹果则不存在这个问题。圣诞老人想给这一排N个同学每人发一件礼物,同时又要避免相邻两个同学都拿到磁铁的情况,请问他有多少种发放礼物的方案? 你可以认为圣诞老人的大礼包中有足够多的苹果和足够多的磁铁,不会发生某种礼物发到后来不够用的情况。

的代码,不明白,求解释

2021/3/21 15:54
加载中...