钥匙计数之二

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
",a[i]);
    }

return 0;
} 

原文地址:https://www.cnblogs.com/oversea201405/p/3767000.html