首页 > 代码库 > 51nod1031(简单斐波拉契数列)
51nod1031(简单斐波拉契数列)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1031
题意:中文题诶~
思路:对于第x块骨牌的情况,我们用a[x]表示其方法数;其比x-1块骨牌时多了一块骨牌,多出的骨牌有两种放法:
1.我们可以直接将其竖着添加在最末端,那么其排列数就为就是前x-1块骨牌的排列数,即为a[x-1];
2. 我们也可以将其和其前面一块骨牌一起横着放,那么其排列数就是前x-2块骨牌的排列数,即为a[x-2];
所以有 a[x]=a[x-1]+a[x-2];
代码:
1 #include <bits/stdc++.h>
2 #define MAXN 1010
3 using namespace std;
4
5 const int mod=1e9+7;
6
7 int main(void){
8 int a[MAXN], n;
9 a[0]=1, a[1]=1;
10 cin >> n;
11 for(int i=2; i<=n; i++){
12 a[i]=(a[i-1]+a[i-2])%mod;
13 }
14 cout << a[n] << endl;
15 return 0;
16 }
51nod1031(简单斐波拉契数列)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。