NC215153. 我说这是签到题你信吗?
描述
南宁师范大学计信院的同学非常喜欢编程,以至于很喜欢只含有“b”和“c”的字符串,且字符串中不能出现两个连续的“c”。请你求出有几种长度为n的字符串是计信院同学喜欢的字符串。答案对1000000007取模。
输入描述
输入一个整数n。
1<=n<=100000
输出描述
输出一个整数表示答案。
示例1
输入:
3
输出:
5
说明:
cbb,cbc,bbb,bbc,bcb
示例2
输入:
1
输出:
2
说明:
c,b
C 解法, 执行用时: 3ms, 内存消耗: 1088K, 提交时间: 2022-04-30 11:21:24
int main() { long long a[100010]; a[1]=2;a[2]=3;a[3]=5; int n; scanf("%d",&n); int i=1; for(i=4;i<=n;i++) a[i]=(a[i-1]+a[i-2]) % 1000000007; printf("%ld",a[n]); return 0; }
C++(clang++11) 解法, 执行用时: 6ms, 内存消耗: 1156K, 提交时间: 2021-01-22 17:40:14
#include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; long long f[10000000]; f[1]=2; f[2]=3; for(int i=3;i<=n;i++) { f[i]=(f[i-1]+f[i-2])%1000000007; } cout<<f[n]%1000000007; }
Python3 解法, 执行用时: 71ms, 内存消耗: 8480K, 提交时间: 2022-08-15 21:18:58
n=int(input()) ls=[0]*(n+1) ls[0], ls[1]=1,2 for i in range(2,n+1): ls[i]=((ls[i-1]+ls[i-2]))%1000000007 print(ls[n])