钥匙计数之二

Problem Description

一把钥匙有N个槽,2<N<26槽深为1,2,3,4,5,6。每钥匙至少有3个不同的深度且相连的槽其深度之差不得为5。求这样的钥匙的总数。 

Input

本题无输入

Output

对2<N<26,输出满足要求的钥匙的总数。

Sample Output

N=3: 104
N=4: 904
N=5: 5880
.
.
.
.
.
N=25: 8310566473196300280
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    __int64 a[26],num[3],t=16;
    int i,n,m;
    a[3]=104;
    for(i=4;i<26;i++)
    {
        num[1]=a[i-1];
        num[2]=a[i-1]-t;
        num[1]+=9*((__int64)pow(2,i-1)-2);
        num[2]+=4*((__int64)pow(2,i-2)-1)+6*((__int64)pow(2,i-1)-2);
        a[i]=4*num[1]+2*num[2];
        t=num[2];

    }
    for(i=3;i<26;i++)
    {    cout<<"N="<<i<<": ";
    printf("%I64d\n",a[i]);
    }

return 0;
} 

posted @ 2014-04-12 09:24  IT专业户  阅读(322)  评论(0编辑  收藏  举报