RT,有一道题目需要高精计算,我不是很会,故求大佬们帮忙修改以下我的题解
题目大概是这样的:
【问题描述】
H5N1型高致病性禽流感袭击了bzbz国,不可避免,bzbz国的大量鸡死于流感。经过数周的紧急研究,鸡健康组织终于发现,病毒是由两种非常简单的基因组成的,分别表示为101和111。很不幸,bzbz国的鸡的DNA只由0和1两种组成的。假如一只鸡含有病毒两种DNA中的一种,这只鸡就可能被感染。
假如鸡的基因长度为L,显然,就有2L种基因不同的鸡。问这些鸡中,有多少不会被感染?
输入一个整数L表示DNA的长度
输出不会被感染的基因个数的值。
【样例输入】
4
【样例输出】
9
【样例说明】
不被感染的基因如下:0000,0001,0010,0011,0100,0110,1000,1001,1100
【数据范围】
对于30%,的数据,L<=40
对于70%的数据,L<=90
对于100%的数据, L<=200
我的原解
#include<bits/stdc++.h>
using namespace std;
long long f[201];
int n;
int main(){
cin>>n;
f[1]=2;
f[2]=4;
f[3]=6;
f[4]=9;
for(int i=5;i<=n;i++){
f[i]=f[i-1]+f[i-3]+f[i-4];
}
cout<<f[n];
return 0;
}