蓝桥杯试题(二)----------方格填数

如图,如下的10个格子,填入0~9的数字。要求:连续的两个数字不能相邻。
(左右、上下、对角都算相邻)一共有多少种可能的填数方案?
请填写表示方案数目的整数。

我用的是暴力破解法虽然写起来复杂些 但是便于理解。代码如下:

public class A
{
private static int count = 0;
public static void main(String args[]){
for (int a=0;a<10;a++){
for (int b = 0;b<10;b++){
if (Math.abs(a-b)1||ba)continue;
for (int c = 0;c<10;c++){
if (Math.abs(c-b)1||cb||ca)continue;
for (int d = 0;d<10;d++){
if (Math.abs(d-a)
1||da||db||dc)continue;
for (int e=0;e<10;e++){
if (Math.abs(e-d)
1||Math.abs(e-a)1||Math.abs(e-b)1||ea||eb||ec||ed)continue;
for (int f=0;f<10;f++){
if (Math.abs(f-e)1||Math.abs(f-a)1||Math.abs(f-b)1||Math.abs(f-c)1||
fa||fb||fc||fd||fe)continue;
for (int g=0;g<10;g++){
if (Math.abs(g-b)
1||Math.abs(g-c)1||Math.abs(g-f)1||
ga||gb||gc||gd||ge||gf)continue;
for (int h=0;h<10;h++){
if (Math.abs(h-d)1||Math.abs(h-e)1||
ha||hb||hc||he||hd||hf||hg)continue;
for (int i=0;i<10;i++){
if (Math.abs(i-d)
1||Math.abs(i-e)1||Math.abs(i-f)1||Math.abs(i-h)1||
i
a||ib||ic||id||ie||if||ig||ih)continue;
for (int j=0;j<10;j++){
if (Math.abs(j-e)
1||Math.abs(j-f)1||Math.abs(j-g)1||Math.abs(j-i)1||
j
a||jb||jc||jd||je||jf||jg||jh||ji)continue;
count++;
}
}
}
}
}
}
}
}
}
}
System.out.print(count);
}
}

posted @ 2017-03-13 20:19  nbdedu  阅读(359)  评论(0编辑  收藏  举报