package day3;
/**
*
标题:方格填数
在2行5列的格子中填入1到10的数字。
要求:
相邻的格子中的数,右边的大于左边的,下边的大于上边的。
如【图1.png】所示的2种,就是合格的填法。
1 2 3 5 8
4 6 7 9 10
1 3 5 6 7
2 4 8 9 10
请你计算一共有多少种可能的方案。
请提交该整数,不要填写任何多余的内容(例如:说明性文字)。
* @author LENOVO
*
*/
public class 方格填数 {
static int[] a=new int[12];
static boolean visit[]=new boolean[12];
static int count=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
dfs(1);
System.out.println(count);
}
public static void dfs(int step){
if(step>=11) {
if(a[1]<a[2]&&a[2]<a[3]&&a[3]<a[4]&&a[4]<a[5]&&a[6]<a[7]&&a[7]<a[8]&&a[8]<a[9]&&a[9]<a[10]&&a[6]>a[1]&&a[7]>a[2]&&a[8]>a[3]&&a[9]>a[4]&&a[10]>a[5]){
count++;
for(int i=1;i<=10;i++) {
System.out.print(a[i]+",");
}
System.out.println("\n");
}
return;
}
for(int i=1;i<11;i++)
{
if(!visit[i]) {
visit[i]=true;
a[step]=i;
dfs(step+1);
visit[i]=false;
}
}
}
}
蓝桥杯-方格填数
最新推荐文章于 2022-05-04 09:00:06 发布