每日算法之方格填数

如下的10个格子

参看下图

填入0~9的数字。要求:连续的两个数字不能相邻。
(左右、上下、对角都算相邻)

一共有多少种可能的填数方案?

请填写表示方案数目的整数。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

个人认为也是属于解法类型的,还是需要借助前面的题目,只是验证方法不一样而已

 1 package Square_Fill;
 2 
 3 public class Main{
 4     static  int count =0;
 5 
 6     public  static  void main(String  args[]){
 7         char []str = "0123456789".toCharArray();
 8         paixu(str,0,9);
 9         System.out.println(count);
10     }
11     public  static  void swap(char[] str,int a, int b){
12         char temp ;
13         temp = str[a];
14         str[a] = str[b];
15         str[b]  = temp;
16     }
17     public  static boolean check(char[] str){
18         if(check2(str[0],str[1])&&check2(str[0],str[3])&&check2(str[0],str[4])&&check2(str[0],str[5])&&check2(str[1],str[2])&&
19                 check2(str[1],str[4])&&check2(str[1],str[5])&&check2(str[1],str[6])&&check2(str[2],str[5])&& check2(str[2],str[6])&&
20                 check2(str[3],str[4])&&check2(str[3],str[7])&&check2(str[3],str[8])&&check2(str[4],str[5])&& check2(str[4],str[7])&&
21                 check2(str[4],str[8])&&check2(str[4],str[9])&&check2(str[5],str[6])&&check2(str[5],str[9])&& check2(str[5],str[8])&&
22                 check2(str[6],str[9])&&check2(str[7],str[8])&&check2(str[8],str[9]))
23         {
24             return true;
25         }
26         else  return false;
27 
28     }
29     public  static  boolean check2(char a,char b){
30         if(a==(b+1)||a==(b-1)){
31             return  false;
32         }
33         return  true;
34     }
35     public  static  void paixu(char[] str,int a,int length){
36         if(a==length){
37             if(check(str)){
38                 count++;
39                 System.out.println(String.valueOf(str));
40             }
41         }else
42         {
43             for(int i=a;i<=length;++i){
44                 swap(str,i,a);
45                 paixu(str,a+1,length);
46                 swap(str,i,a);
47             }
48         }
49     }
50 }

 

posted @ 2018-04-12 20:33  怡城  阅读(833)  评论(0编辑  收藏  举报