方格填数


标题:方格填数

在2行5列的格子中填入1到10的数字。
要求:
相邻的格子中的数,右边的大于左边的,下边的大于上边的。

如【图1.png】所示的2种,就是合格的填法。

请你计算一共有多少种可能的方案。

请提交该整数,不要填写任何多余的内容(例如:说明性文字)。
static int num = 0;
public static void main(String[] args) {
int a[]={1,2,3,4,5,6,7,8,9,10};
PaiLie(a,0);
System.out.println(num);
}

public static void PaiLie(int[] arr, int start){
for(int i= start; i<arr.length; i++){
if(i>start){
JiaoHuan(arr, start, i);
}
if(start==arr.length-1){
BianLi(arr);
return;
}
PaiLie(arr, start+1);
if(i>start){
JiaoHuan(arr, start, i);
}

}
}

public static void BianLi(int[] arr){
if(arr[0]<arr[1] && arr[1]<arr[2] && arr[2]<arr[3] && arr[3]<arr[4]
&& arr[5]<arr[6] && arr[6]<arr[7] && arr[7]<arr[8] && arr[8]<arr[9]
&& arr[0]<arr[5]&& arr[1]<arr[6] && arr[2]<arr[7] && arr[3]<arr[8] && arr[4]<arr[9]){
num++;
for(int a = 0;a<10;a++){
System.out.print(arr[a]+" ");
if(a==9){
System.out.println();
}
}

}

}

public static void JiaoHuan(int[] arr, int a, int b){
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}

原文地址:https://www.cnblogs.com/xuguohang/p/10166666.html