解题思路:
这种题其实和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 人评分
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:768 |
WU-蓝桥杯算法提高VIP-勾股数 (C++代码)浏览:1640 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:564 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:590 |
1128题解(返回值为数组的情况)浏览:517 |
川哥的吩咐 (C语言代码)浏览:648 |
企业奖金发放 (C语言代码)浏览:2363 |
矩阵转置 (C语言代码)浏览:818 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:1071 |
母牛的故事 (C语言代码)浏览:600 |