java实现第七届蓝桥杯寒假作业
题目6、寒假作业
寒假作业
现在小学的数学题目也不是那么好玩的。
看看这个寒假作业:
□ + □ = □
□ - □ = □
□ × □ = □
□ ÷ □ = □
(如果显示不出来,可以参见【图1.jpg】)
每个方块代表1~13中的某一个数字,但不能重复。
比如:
6 + 7 = 13
9 - 8 = 1
3 * 4 = 12
10 / 2 = 5
以及:
7 + 6 = 13
9 - 8 = 1
3 * 4 = 12
10 / 2 = 5
就算两种解法。(加法,乘法交换律后算不同的方案)
你一共找到了多少种方案?
请填写表示方案数目的整数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
结果:64
//方法1:DFS搜索
import java.util.ArrayList;
public class Main {
public ArrayList<Integer> list = new ArrayList<Integer>();
public static int count = 0;
public boolean check() {
int len = list.size();
if(len >= 3) {
if(list.get(0) + list.get(1) != list.get(2))
return false;
}
if(len >= 6) {
if(list.get(3) - list.get(4) != list.get(5))
return false;
}
if(len >= 9) {
if(list.get(6) * list.get(7) != list.get(8))
return false;
}
if(len >= 12) {
if(list.get(9) / list.get(10) != list.get(11) || list.get(9) % list.get(10) != 0)
return false;
}
return true;
}
public void dfs(int step) {
if(step == 12) {
System.out.println(list);
count++;
return;
} else {
for(int i = 1;i <= 13;i++) {
if(list.contains(i))
continue;
list.add(i);
if(check() == false) { //类似八皇后问题,此处进行减枝操作
list.remove(list.indexOf(i));
continue;
}
dfs(step + 1);
list.remove(list.size() - 1);
}
}
return;
}
public static void main(String[] args) {
Main test = new Main();
test.dfs(0);
System.out.println(count);
}
}
//方法2:蛮力枚举
import java.util.ArrayList;
import java.util.Collections;
public class Main1 {
public static long count = 0;
public void printResult() {
for(int a1 = 1;a1 <= 13;a1++) {
for(int a2 = 1;a2 <= 13;a2++) {
if(a1 == a2 || a1 + a2 > 13)
continue;
for(int a3 = 1;a3 <= 13;a3++) {
for(int a4 = 1;a4 <= 13;a4++) {
if(a3 == a4 || a3 - a4 < 1)
continue;
for(int a5 = 1;a5 <= 13;a5++) {
for(int a6 = 1;a6 <= 13;a6++) {
if(a5 == a6 || a5 * a6 > 13)
continue;
for(int a7 = 1;a7 <= 13;a7++) {
for(int a8 = 1;a8 <= 13;a8++) {
if(a7 == a8 || a7 % a8 != 0)
continue;
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(a1);
list.add(a2);
list.add((a1 + a2));
list.add(a3);
list.add(a4);
list.add((a3 - a4));
list.add(a5);
list.add(a6);
list.add((a5 * a6));
list.add(a7);
list.add(a8);
list.add((a7 / a8));
ArrayList<Integer> tempList = new ArrayList<Integer>();
for(int i = 0;i < list.size();i++)
tempList.add(list.get(i));
Collections.sort(list);
boolean judge = true;
for(int i = 1;i < list.size();i++) {
if(list.get(i - 1) == list.get(i)) {
judge = false;
break;
}else {
continue;
}
}
if(judge == true) {
System.out.println(tempList);
count++;
}
}
}
}
}
}
}
}
}
}
public static void main(String[] args) {
Main1 test = new Main1();
test.printResult();
System.out.println(count);
}
}
java实现第七届蓝桥杯寒假作业的更多相关文章
- java实现第七届蓝桥杯冰雹数
题目8.冰雹数 题目描述 任意给定一个正整数N, 如果是偶数,执行: N / 2 如果是奇数,执行: N * 3 + 1 生成的新的数字再执行同样的动作,循环往复. 通过观察发现,这个数字会一会儿上升 ...
- java实现第七届蓝桥杯七星填数
七星填数 如图[图1.png]所示. 在七角星的14个节点上填入1~14 的数字,不重复,不遗漏. 要求每条直线上的四个数字之和必须相等. 图中已经给出了3个数字. 请计算其它位置要填充的数字,答案唯 ...
- java算法 第七届 蓝桥杯B组(题+答案) 10.压缩变换
10.压缩变换 (程序设计) 小明最近在研究压缩算法.他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比.然而,要使数值很小是一个挑战. 最近,小明需要压缩一些正整数的序列,这些 ...
- java算法 第七届 蓝桥杯B组(题+答案) 9.取球博弈
9.取球博弈 (程序设计) 两个人玩取球的游戏.一共有N个球,每人轮流取球,每次可取集合{n1,n2,n3}中的任何一个数目.如果无法继续取球,则游戏结束.此时,持有奇数个球的一方获胜.如果两人都是 ...
- Java实现第七届蓝桥杯国赛 赢球票
标题:赢球票 某机构举办球票大奖赛.获奖选手有机会赢得若干张球票. 主持人拿出 N 张卡片(上面写着 1~N 的数字),打乱顺序,排成一个圆圈. 你可以从任意一张卡片开始顺时针数数: 1,2,3- 如 ...
- java实现第七届蓝桥杯四平方和
四平方和 四平方和 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和. 如果把0包括进去,就正好可以表示为4个数的平方和. 比如: 5 = 0^2 + 0^2 + 1^ ...
- java实现第七届蓝桥杯有奖竞猜
有奖竞猜 题目描述 小明很喜欢猜谜语. 最近,他被邀请参加了X星球的猜谜活动. 每位选手开始的时候都被发给777个电子币. 规则是:猜对了,手里的电子币数目翻倍, 猜错了,扣除555个电子币, 扣完为 ...
- java实现第七届蓝桥杯机器人塔
机器人塔 X星球的机器人表演拉拉队有两种服装,A和B. 他们这次表演的是搭机器人塔. 类似: A B B A B A A A B B B B B A B A B A B B A 队内的组塔规则是: A ...
- java实现第七届蓝桥杯凑平方数
凑平方数 把0~9这10个数字,分成多个组,每个组恰好是一个平方数,这是能够办到的. 比如:0, 36, 5948721 再比如: 1098524736 1, 25, 6390784 0, 4, 28 ...
随机推荐
- 关于redis,你需要了解的几点!
一.关于 redis key: 1.是二进制安全的,也就是说,你可以使用任何形式的二进制序列来作为key,比如一个string,或者一个jpg图片的数据,需要说明的是,空字符串也是一个有效的key. ...
- 分布式项目配置工程,在项目间互通要先在linux下开启zookeeper
一.编写配置文件 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http: ...
- javaWeb删除一条及多条数据
一.编写dao //删除根据ID@Delete("delete from product where id=#{id}")public void delete(Integer id ...
- srping mvc RequestMapping实现
spring mvc中定义请求的url只需要在方法上添加注解: @RequestMapping("aa.mvc")即可定义访问的url地址,但是你是否有考虑过为什么添加这个注解就可 ...
- 初识spring boot maven管理--配置文件
web环境下修改信息需要重启服务器,如果在一个大型的项目中经常重启服务器,那浪费的时间可想而知,今天介绍个好东西 --spring boot!一般学习都是从hello world开始学习的!下面介绍s ...
- promise对象里resolve和reject状态讲解及Promise.all()的使用
首先来说下同步异步与阻塞非阻塞的概念,同步异步与阻塞非阻塞并没有关系.同步异步主要是事情做完以后,如何进行处理.或者说关注的是一种消息通信机制. 同步的情况下,是由处理消息者自己去等待消息是否被触发: ...
- 微信小程序-视频弹幕的项目
1.视频播放器 2.选择弹幕颜色 3.弹幕来了... 一般微信小程序需要配置.wxml.wxss.js.json文件,所有接下来也是要配置这几个文件,请看下图: 第一: index.wxml < ...
- interface和abstract 的区别和相同点
在Java语言中,abstract class和interface是支持抽象类定义的两种机制. 不能创建abstract类的实例,然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例 ...
- HTML5面试题
1. sessionStorage和localStorage的区别 答案: sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会 ...
- js 简单有效判断日期有效性(含闰年)
原文:https://zhidao.baidu.com/question/1701946584925153620.html 要想精确验证,最容易想到的方法就是通过月份判断日期是否合法(1~28/29/ ...