HDOJ  2045   不容易系列之(3)—— L…

来源:互联网 发布:java 如何使用瞬态值 编辑:程序博客网 时间:2024/05/06 10:37

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2045

推导公式:f(n)=2*f(n-2)+f(n-1)
因为假设前(n-2)个排好,剩下的就只有两种排法
如果前(n-1)个排好,那么最后一个就只有一种排法
数据可能很大要使用long long int 或(__int64)
#include<stdio.h>
int main ()
{
    inti,a;
    __int64t[51]={0,3,6,6};
   for(i=4;i<=50;i++)
       t[i] = 2*t[i-2] + t[i-1];
    while(scanf("%d",&a) != EOF)
       printf("%I64d\n",t[a]);
    return0;
}

 

0 0
原创粉丝点击