第七届蓝桥杯java B组试题题解(仅代表个人观点)
来源:互联网 发布:网络lw代表什么意思 编辑:程序博客网 时间:2024/05/17 04:19
第六题:方格填数
如下的10个格子
|
#
填入0~9的数字。要求:连续的两个数字不能相邻。
(左右、上下、对角都算相邻)
一共有多少种可能的填数方案?
(1580种)
public class Main{ //将前后几个方法中都要用到的变量全部设为全局变量 static int a[][]=new int[5][6];//此处是将原图外围再包上一圈, //将原图中的边界元素 //变成非边界元素,以使原图中 //的边界元素避免麻烦的边界处理。 //然后用二维数组a进行表达以方便后续处理。 static int []data={0,1,2,3,4,5,6,7,8,9}; static int count=0;//存储总的方案数 public static void main(String args[]) { //先将数组a赋初值,且这个初值应远离0-9中任何 //一个数,后续只对 //除边界以外的数组元素进行赋值,则可默认边界 //不可能会与其他元素相邻。 for(int i=0;i<5;i++) { for(int j=0;j<6;j++) { a[i][j]=-2; } } get_fullpermutation(data, 0); System.out.print(count); } //对一种全排列情况进行判断 public static boolean judge(int [][]v) { for(int i=1;i<=3;i++) { for(int j=1;j<=4;j++) { if(i==1&&j==1||i==3&&j==4) { continue; } int x=v[i][j]+1; int y=v[i][j]-1; if(x==v[i+1][j]||x==v[i-1][j]||x==v[i][j+1]|| x==v[i][j-1]||x==v[i+1][j+1]|| x==v[i-1][j-1]|| x==v[i+1][j-1]|| x==v[i-1][j+1]) { return false; } if(y==v[i+1][j]||y==v[i-1][j]||y==v[i][j+1]|| y==v[i][j-1]||y==v[i+1][j+1]|| y==v[i-1][j-1]|| y==v[i+1][j-1]|| y==v[i-1][j+1]) { return false; } } } return true; } //得到0-9的全排列并将其赋值于数组a, public static void get_fullpermutation(int []d,int k) { if(k==d.length)//每得到一种全排列就赋值一次并进行判断 { int t=0; for(int i=1;i<=3;i++) { for(int j=1;j<=4;j++) { if(i==1&&j==1||i==3&&j==4) { continue; } else { a[i][j]=data[t]; t++; } } } if(judge(a))//judge函数返回true时即连续的两个数字不相邻 { count++; } } //全排列 for(int i=k;i<d.length;i++) { {int t=d[i];d[i]=d[k];d[k]=t;} get_fullpermutation(d, k+1); {int t=d[i];d[i]=d[k];d[k]=t;} } }}
0 0
- 第七届蓝桥杯java B组试题题解(仅代表个人观点)
- 我们公司是这样筛选简历的(仅代表个人观点)
- 对象/类,函数/方法 的区分(仅代表个人观点,如有偏差欢迎指正)
- 第七届蓝桥杯JAVA B组真题解析-凑算式(第三题)
- 第七届蓝桥杯B组决赛 第二题题解
- 2016第七届蓝桥杯C/C++B组题解
- 第七届蓝桥杯省赛B组题解(1~5)
- 第七届蓝桥杯大赛个人赛省赛C++ B组 题解+原题 (填空题)
- 第七届蓝桥杯C/C++ B组省赛题解
- 第七届蓝桥杯C/C++ B组省赛题解
- 第七届蓝桥杯个人赛省赛(Java B组)第九题
- 蓝桥杯-第七届蓝桥杯java B组决赛
- 2016第七届蓝桥杯C/C++ B组省赛题解 B题
- 2016年第七届蓝桥杯试题(C/C++本科B组)
- 新人入职的选择(仅为个人观点)
- 第七届蓝桥杯C/C++省赛B组真题解析与答案
- 第七届蓝桥杯决赛 C语言B组 题解 第五题_广场舞
- 2016第七届蓝桥杯C/C++ B组省赛题解 C题 (全排列的学习)
- Java程序员必须知道的两个有关Eclipse设置
- (转)Eclipse快捷键
- 09Spring
- Java编程思想-第一章 1.1-1.4 读书笔记
- 求不带头结点的单链表的节点的个数
- 第七届蓝桥杯java B组试题题解(仅代表个人观点)
- Spring Cloud微服务断路由Hystrix与服务网关学习笔记
- 正则表达式学习总结
- MySQL学习笔记
- nachos-java Task1.6 Boat Program
- UIButton上的文字产生刷新动画
- sql查询优化总结ing
- office熟练是怎么一回事?
- 第一章 初见网络爬虫