规律题,说实话一开始没看出来,然后才看出来是递推式(斐波那契),还是太菜了(又学到了新知识)
解题思路:
- 首先如果看不懂题意可以先画图,画着画着就可以发现,下面的图形是原本上面两个图形的拼接
- 然后就直接斐波那契递推式就OK了
- 不过最上面有个固定不变的2,画图即可看出
代码:
#include <iostream>
#include <cstdio>
using namespace std;
const long long mod = 1e10 + 7;
const int N = 5000010;
long long a[N];
int main(){
int n;
scanf("%d",&n);
a[1] = 1;
for (int i = 2; i <= n; i ++){
a[i] = (a[i - 1] + a[i - 2] + 2) % mod;
}
printf("%lld\n",a[n]);
return 0;
}