题目描述
一个只包含A,B,C三种字符的字符串,如果其中有连续的3个由A,B,C各一个组成,则称为Fstring。
例如:BAACAACCBAAA就是,而AABBCCAABB则不是。
你的任务就是计算长度为n的这种字符串有多少个不是Fstring。
输入输出格式
输入格式:
一行,一个整数n。
输出格式:
一行,一个整数。
输入输出样例
输入样例一:
2
输出样例一:
9
输入样例二:
3
输出样例二:
View Code
21
思路:第n(n>3)个是前一个的3倍减去前两个和第三个之和。
代码:
//程序名:新的C++程序 //作者: #include<iostream> #include<fstream> #include<algorithm> using namespace std; long long a[10005],n; int main() { a[1]=3; a[2]=9; a[3]=21; cin>>n; for(int i=4;i<=n;i++) { a[i]=a[i-1]*3-a[i-2]-a[i-3]; } cout<<a[n]; return 0; }