对不起,请高手帮忙,1到9排序相邻的两个数和相隔的两个数之间的差不能为1或2

来源:百度知道 编辑:UC知道 时间:2024/06/30 05:44:28
我算出答案的,但是不知道用c语言怎么实现
3,6,9,2,5,8,1,4,7

不同版本的暴力,呵呵
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0},i=0,j,temp;
while(i<9)
{
if(abs(a[i]-a[i+1])==1 || abs(a[i]-a[i+1])==2)
{
for(j=i+2;j<9;j++)
{
if(abs(a[i]-a[j])!=1 && abs(a[i]-a[j])!=2)
{
temp=a[i+1];
a[i+1]=a[j];
a[j]=temp;
i++;
break;
}
}
}
else
{
i++;
}
}
for(i=0;i<9;i++)
{
printf("%d ",a[i]);
}

system("pause");
return 0;
}

毫无诚意的暴力版|||

#include <stdio.h>

int a[9];
int n;

int foo()
{
if (n == 9)
{
return 1;
}

for (int i = 1;; i++)
{
if (i == 10)
{
n--;

retu