一、问题描述
如下的10个格子
+--+--+--+
| | | |
+--+--+--+--+
| | | | |
+--+--+--+--+
| | | |
+--+--+--+
(如果显示有问题,也可以参看【图1.jpg】)
填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)
一共有多少种可能的填数方案?
请填写表示方案数目的整数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
二、题目类型:结果填空
三、解题思路及代码
这题。。。我丢进了题目阅读理解的坑里!我以为每个格子填0-9的数,还被队友嘲笑,真·阅读杯(微笑)。所以题目就是求0-9这十个数字填进图中十个方格的填数方案,要求连续的两个数字不能相邻。(左右、上下、对角都算相邻)。这没什么好思考的,一个暴力破解完事儿!(对,我就是那么俗的人)
1 public class SquareFillingNumber { 2 3 public static void main(String[] args) { 4 int count = 0; 5 for (int a = 0; a < 10; a++) { 6 for (int b = 0; b < 10; b++) { 7 for (int c = 0; c < 10; c++) { 8 for (int d = 0; d < 10; d++) { 9 for (int e = 0; e < 10; e++) { 10 for (int f = 0; f < 10; f++) { 11 for (int g = 0; g < 10; g++) { 12 for (int h = 0; h < 10; h++) { 13 for (int i = 0; i < 10; i++) { 14 for (int j = 0; j < 10; j++) { 15 if (a != b && a != c && a != d && a != e && a != f && a != g && a != h && 16 a != i && a != j && b != c && b != d && b != e && b != f && 17 b != g && b != h && b != i && b != j && c != d && c != e && 18 c != f && c != g && c != h && c != i && c != j && d != e && 19 d != f && d != g && d != h && d != i && d != j && e != f && 20 e != g && e != h && e != i && e != j && f != g && f != h && 21 f != i && f != j && g != h && g != i && g != j && h != i && 22 h != j && i != j) { 23 if (a + 1 != b && a - 1 != b && 24 a + 1 != e && a - 1 != e && 25 a + 1 != d && a - 1 != d && 26 a + 1 != f && a - 1 != f && 27 b + 1 != f && b - 1 != f && 28 b + 1 != g && b - 1 != g && 29 b + 1 != c && b - 1 != c && 30 b + 1 != e && b - 1 != e && 31 c + 1 != f && c - 1 != f && 32 c + 1 != g && c - 1 != g && 33 d + 1 != e && d - 1 != e && 34 d + 1 != h && d - 1 != h && 35 d + 1 != i && d - 1 != i && 36 e + 1 != f && e - 1 != f && 37 e + 1 != i && e - 1 != i && 38 e + 1 != j && e - 1 != j && 39 e + 1 != h && e - 1 != h && 40 f + 1 != g && f - 1 != g && 41 f + 1 != j && f - 1 != j && 42 f + 1 != i && f - 1 != i && 43 g + 1 != j && g - 1 != j && 44 h + 1 != i && h - 1 != i && 45 i + 1 != j && i - 1 != j) { 46 count++; 47 } 48 } 49 } 50 } 51 } 52 } 53 } 54 } 55 } 56 } 57 } 58 } 59 System.out.println(count); 60 } 61 }
答案:1580