java实现第六届蓝桥杯四阶幻方
四阶幻方
把1~16的数字填入4x4的方格中,使得行、列以
及两个对角线的和都相等,满足这样的特征时称
为:四阶幻方。
四阶幻方可能有很多方案。如果固定左上角为1
,请计算一共有多少种方案。
比如:
1 2 15 16
12 14 3 5
13 7 10 4
8 11 6 9
以及:
1 12 13 8
2 14 7 11
15 3 10 6
16 5 4 9
就可以算为两种不同的方案。
请提交左上角固定为1时的所有方案数字,不要
填写任何多余内容或说明文字。
答案:416
import java.util.ArrayList;public class Main {public static boolean[] used = new boolean[17];public static ArrayList<String> list = new ArrayList<String>();public static int count = 0;public boolean check(int[] A, int step) {if(step >= 4)if(A[0] + A[1] + A[2] + A[3] != 34)return false;if(step >= 8)if(A[4] + A[5] + A[6] + A[7] != 34)return false;if(step >= 12)if(A[8] + A[9] + A[10] + A[11] != 34)return false;if(step >= 13)if(A[0] + A[4] + A[8] + A[12] != 34 || A[3] + A[6] + A[9] + A[12] != 34)return false;if(step >= 14)if(A[1] + A[5] + A[9] + A[13] != 34)return false;if(step >= 15)if(A[2] + A[6] + A[10] + A[14] != 34)return false;if(step >= 16)if(A[3] + A[7] + A[11] + A[15] != 34 || A[0] + A[5] + A[10] + A[15] != 34)return false;return true;}public void dfs(int[] A, int step) {if(check(A, step) == false)return;if(step == 16) {StringBuffer s = new StringBuffer("");for(int i = 0;i < A.length;i++)s.append(A[i]);if(!list.contains(s.toString())) {list.add(s.toString());count++;}return;}for(int i = 2;i <= 16;i++) {if(used[i] == false) {used[i] = true;A[step] = i;dfs(A, step + 1);used[i] = false;}}}public static void main(String[] args) {Main test = new Main();int[] A = new int[16];A[0] = 1;used[1] = true;test.dfs(A, 1);System.out.println(count);}
}
java实现第六届蓝桥杯四阶幻方相关推荐
- 第六届蓝桥杯 四阶幻方
转载请注明出处:http://www.cnblogs.com/zhishoumuguinian/p/8395458.html 把1~16的数字填入4x4的方格中,使得行.列以及两个对角线的和都相等,满 ...
- java实现第六届蓝桥杯穿越雷区
穿越雷区 题目描述 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废. 某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能 ...
- java实现第六届蓝桥杯生命之树
生命之树 生命之树 在X森林里,上帝创建了生命之树. 他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值. 上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点 ...
- java实现第六届蓝桥杯饮料换购
饮料换购 饮料换购 乐羊羊饮料厂正在举办一次促销优惠活动.乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去,但不允许赊账. 请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么, ...
- java实现第六届蓝桥杯循环节长度
循环节长度 两个整数做除法,有时会产生循环小数,其循环部分称为:循环节. 比如,11/13=6=>0.846153846153..... 其循环节为[846153] 共有6位. 下面的方法,可以 ...
- java实现第六届蓝桥杯立方体自身
立方变自身 题目描述 观察下面的现象,某个数字的立方,按位累加仍然等于自身. 1^3 = 1 8^3 = 512 5+1+2=8 17^3 = 4913 4+9+1+3=17 - 请你计算包括1,8, ...
- java实现第六届蓝桥杯熊怪吃核桃
熊怪吃核桃 题目描述 森林里有一只熊怪,很爱吃核桃.不过它有个习惯,每次都把找到的核桃分成相等的两份,吃掉一份,留一份.如果不能等分,熊怪就会扔掉一个核桃再分.第二天再继续这个过程,直到最后剩一个核桃 ...
- 第六届蓝桥杯大赛个人赛省赛Java B组真题
文章目录 第六届蓝桥杯大赛个人赛省赛Java B组真题 1. 三角形面积(结果填空) 2. 立方自变身(结果填空) 3. 三羊献瑞(结果填空) 4. 循环节长度(代码填空) 5. 九数组分数(代码填空 ...
- 【蓝桥杯】第六届蓝桥杯大赛个人赛省赛(软件类) Java大学C组 -题目与答案
第六届蓝桥杯大赛个人赛省赛(软件类) Java大学C组 -题目与答案 1.结果填空(满分3分) 2.结果填空(满分5分) 3.结果填空(满分9分) 4.代码填空(满分11分) 5.代码填空(满分15分 ...
最新文章
- [C1] 优化 C1FlexGrid 单元格边框
- Magento 获取当前店铺信息(首页,类别,地址等)
- 算天数什么时候加一什么时候不加一_陌陌加公会不加公会的区别?
- c++语言取整为什么要加0.5_C/C++之取整函数
- POJ-1699 Best Sequence 状态压缩DP
- “深入浅出”是什么导致不能以操作系统用户身份连接到数据库
- android imagebutton 设置边框,【Android技巧】ImageButton 去边框 添加按下效果
- 苹果绕过ID_苹果iphone绕ID教程
- 学习ectouch之文件结构
- 自动驾驶车辆仿真模拟软件盘点
- Vue-01 —创建一个Vue实例
- android q mix3,Android Q+5G 小米MIX3现场播放8K视频
- CM311-3_YST_晨星MSO9385_2+8_安卓9.0_TTL免费升级固件
- Algorithm:矩阵中“块”的个数
- vba 汉字转拼音 -- wps office
- 数据结构:手把手教你写代码系列总结与说明
- 【Python3之面向对象的程序设计】
- 微信小程序:喝酒娱乐小游戏助力神器
- python写文字冒险游戏手机版_用128行代码实现一个文字冒险游戏
- 打开Visual Studio Community 2017 报出“许可证已过期”