标题:六角填数

来源:互联网 发布:动环监控用什么编程的 编辑:程序博客网 时间:2024/04/29 15:10
#include <iostream>using namespace std;int book[12];int t[12];void dfs(int x){    if(x==1||x==2||x==12){        dfs(x+1);        return;    }    if(x>12){        int a[6];        a[0]=t[2]+t[3]+t[4]+t[5];        a[1]=t[1]+t[3]+t[6]+t[8];        a[2]=t[8]+t[9]+t[10]+t[11];        a[3]=t[2]+t[6]+t[12]+t[9];        a[4]=t[5]+t[7]+t[10]+t[12];        a[5]=t[1]+t[4]+t[7]+t[11];        for(int i=1;i<6;i++){            if(a[i]!=a[i-1])                return;        }        cout<<t[6]<<endl;        return;    }    for(int i=1;i<=12;i++){        if(book[i]==0){            book[i]=1;            t[x]=i;            dfs(x+1);            book[i]=0;        }    }}int main(){    for(int i=1;i<=12;i++)        book[i]=0;    book[1]=1;    t[1]=1;    book[8]=1;    t[2]=8;    book[3]=1;    t[12]=3;    dfs(1);    return 0;}

0 0