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 ...
随机推荐
- sql 取值时将字符串类型数字转化成整形
select cast(a.Vchcode as int) as avchcode,a.ptypeid,a.assqty,unit,b.pfullname,b.standard,b.type from ...
- app测试、web测试-怎么测?
app测试 前言 看过许多大神对APP测试的理解,博主总结了一下我们平时测试APP应该注意的一些测试点并结合大神的理解,总结出这篇文章. 一.测试周期 测试周期一般为两周,根据项目情况以及版本质量可适 ...
- STM32学习笔记——USART
STM32的USART组件支持异步.同步.单线半双工.多处理器.IrDA.LIN.SmartCard等模式,本文介绍的是异步即UART模式. 总线通信有三种模型:轮询.中断和DMA.DMA对我来说是陌 ...
- 关于SpringMVC乱码问题
关于SpringMVC运行Tomcat控制台出现乱码的情况(在网上找到一种方法亲测有效) 找到tomcat文件夹中的conf包下的logging.properties中找到 java.util.log ...
- httpd+tomcat 均衡负载
接前面的文章http://www.cnblogs.com/gqdw/p/3785812.html workers.properties worker.list=controller#worker1 w ...
- scrapy中间件之下载中间件使用(网易新闻爬取)
scrapy项目中的middlewarse.py中间件 爬虫中间件:目前先不介绍 下载中间件(需要在settings.py中开启) (1)请求处理函数:process_request(self, re ...
- 正则+re模块知识总结
目录 正则表达式 定义+特点 元字符 量词 贪婪匹配与非贪婪匹配 转义符 re模块 re.findall re.search re.match re.compile re.finditer re.sp ...
- 猜想-未做 利用office组件读取excel数据
---未实际使用过 用SQL-Server访问Office的Access和Excel http://blog.sina.com.cn/s/blog_964237ea0101532x.html 2007 ...
- BZOJ 1070 拆点 费用流
1070: [SCOI2007]修车 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 5860 Solved: 2487[Submit][Status] ...
- thymeleaf抛出项目上下文ServletContext ,session,request等信息
@RequestMapping("/alls") public String allsinfo(HttpSession session, HttpServletRequest re ...