解题思路:
这种题其实和1004这种差不多,都是每几个状态之后状态变化发生重复,现在的结果必然会对以后造成影响,所以现在的个数必然会对将来状态的个数造成影响,比如1004的母牛问题,每4年都是一个新的开始4年前的小羊长成大羊可以继续生产,所以把这个的前几个结果写出来 1,1,2,4,6,9,14。。。。。。可以看出公式a[i] = a[i - 1] + a[i - 3] + 1;
注意事项:
参考代码:
#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;
int main()
{
int n;
int a[100];
memset(a, 0, sizeof(a));
a[1] = a[2] = 1;
a[3] = 2;
a[4] = 4;
for (int i = 5; i < 56; i++)
{
a[i] = a[i - 1] + a[i - 3] + 1;
}
cin >> n;
cout << a[n] << endl;
return 0;
}
0.0分
5 人评分