码迷,mamicode.com
首页 > 其他好文 > 详细

NYOJ469

时间:2014-11-21 10:19:10      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   sp   for   on   div   

题目连接:http://acm.nyist.net/JudgeOnline/problem.php?pid=469

思路:很明显这是一道找规律的题 可是这个规律怎么找

那么就要看n的位置放在哪里了   

举个例子  比如说n等于5 求f(5);

第二位是2时:后面的四个数正好是2   3  4  5 所以这个排列的个数为 f(5-1);

第二位是3时:第三位可以是2那么后面两位是4   5  所以这个排列的个数为  f(5-3)

                   第三位是4的时候无结果

                   第三位是5的时候   只能有一个序列   1    3     5     4     2

综上所述:f(n) = f(n - 1) + f(n - 3) + 1;

下面看代码:

#include<stdio.h>

int main()

{
    int n,a[59] = {0,1,1,2,4};  //数组一定要声明大于55

    for(int i = 5;i < 56;i++)
    {
        a[i] = a[i - 1] + a[i - 3] + 1;
    }
    while(~scanf("%d",&n))
    {
        printf("%d\n",a[n]);
    }
    return 0;
}
//代码很简单   但是需要注意细节

 

NYOJ469

标签:style   blog   http   io   color   sp   for   on   div   

原文地址:http://www.cnblogs.com/zhanyage110/p/4112051.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!