#include<stdio.h>
#include<string.h>
//思路:从 1到6开始搜索,跳过4
int a[15];
int dfs(int n)
{
if(n==4)
n++;
if(n>6)
return 1;
for(int i=3;i<=14;i++)
{
if(i==7||i==9) continue;
if(i+n+1<=14&&a[i+n+1]==0&&a[i]==0)
{
a[i+n+1]=a[i]=n;
if(dfs(n+1))
{
return 1;
}
a[i+n+1]=a[i]=0;
}
}
}
main()
{
memset(a,0,sizeof(a));
a[1]=7;
a[2]=4;
a[7]=4;
a[9]=7;
dfs(1);
for(int j=1;j<=14;j++)
{
printf("%d",a[j]);
}
return 0;
}
#include<string.h>
//思路:从 1到6开始搜索,跳过4
int a[15];
int dfs(int n)
{
if(n==4)
n++;
if(n>6)
return 1;
for(int i=3;i<=14;i++)
{
if(i==7||i==9) continue;
if(i+n+1<=14&&a[i+n+1]==0&&a[i]==0)
{
a[i+n+1]=a[i]=n;
if(dfs(n+1))
{
return 1;
}
a[i+n+1]=a[i]=0;
}
}
}
main()
{
memset(a,0,sizeof(a));
a[1]=7;
a[2]=4;
a[7]=4;
a[9]=7;
dfs(1);
for(int j=1;j<=14;j++)
{
printf("%d",a[j]);
}
return 0;
}