Sniper


私信TA

用户名:djtuSniper

访问量:1248

签 名:

等  级
排  名 33007
经  验 443
参赛次数 1
文章发表 1
年  龄 0
在职情况 学生
学  校 大连交通大学
专  业

  自我简介:

TA的其他文章

解题思路:
这种题其实和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 人评分

  评论区

13542
2019-03-19 20:38:51
对了吗   当n==5时   
有这些情况(1必须在最左边)
12345
12354
12435
12453
13245
你怎么是6种???我还丢了哪种吗
2018-03-31 11:45:08
  • «
  • 1
  • »