题目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实现第七届蓝桥杯寒假作业的更多相关文章

  1. java实现第七届蓝桥杯冰雹数

    题目8.冰雹数 题目描述 任意给定一个正整数N, 如果是偶数,执行: N / 2 如果是奇数,执行: N * 3 + 1 生成的新的数字再执行同样的动作,循环往复. 通过观察发现,这个数字会一会儿上升 ...

  2. java实现第七届蓝桥杯七星填数

    七星填数 如图[图1.png]所示. 在七角星的14个节点上填入1~14 的数字,不重复,不遗漏. 要求每条直线上的四个数字之和必须相等. 图中已经给出了3个数字. 请计算其它位置要填充的数字,答案唯 ...

  3. java算法 第七届 蓝桥杯B组(题+答案) 10.压缩变换

    10.压缩变换  (程序设计) 小明最近在研究压缩算法.他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比.然而,要使数值很小是一个挑战. 最近,小明需要压缩一些正整数的序列,这些 ...

  4. java算法 第七届 蓝桥杯B组(题+答案) 9.取球博弈

    9.取球博弈  (程序设计) 两个人玩取球的游戏.一共有N个球,每人轮流取球,每次可取集合{n1,n2,n3}中的任何一个数目.如果无法继续取球,则游戏结束.此时,持有奇数个球的一方获胜.如果两人都是 ...

  5. Java实现第七届蓝桥杯国赛 赢球票

    标题:赢球票 某机构举办球票大奖赛.获奖选手有机会赢得若干张球票. 主持人拿出 N 张卡片(上面写着 1~N 的数字),打乱顺序,排成一个圆圈. 你可以从任意一张卡片开始顺时针数数: 1,2,3- 如 ...

  6. java实现第七届蓝桥杯四平方和

    四平方和 四平方和 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和. 如果把0包括进去,就正好可以表示为4个数的平方和. 比如: 5 = 0^2 + 0^2 + 1^ ...

  7. java实现第七届蓝桥杯有奖竞猜

    有奖竞猜 题目描述 小明很喜欢猜谜语. 最近,他被邀请参加了X星球的猜谜活动. 每位选手开始的时候都被发给777个电子币. 规则是:猜对了,手里的电子币数目翻倍, 猜错了,扣除555个电子币, 扣完为 ...

  8. 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 ...

  9. java实现第七届蓝桥杯凑平方数

    凑平方数 把0~9这10个数字,分成多个组,每个组恰好是一个平方数,这是能够办到的. 比如:0, 36, 5948721 再比如: 1098524736 1, 25, 6390784 0, 4, 28 ...

随机推荐

  1. Mysql 常用函数(20)- ceiling 函数

    Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html ceiling 的作用 向上取整,ceil 函数一 ...

  2. resize允许你控制一个元素的可调整大小性

  3. Docker搭建代码检测平台SonarQube并检测maven项目

    1 前言 良好的代码习惯是一个优秀程序员应该具备的品质,但靠人的习惯与记忆来保证代码质量,始终不是一件靠谱的事.在计算机行业应该深知,只要是人为的,都会有操作风险.本文讲解如何通过Docker搭建代码 ...

  4. bash leetcode

    拓展:grep 193.  ref: https://blog.csdn.net/yanglingwell/article/details/82343407 Given a text file fil ...

  5. 学习Echarts:(一)静态图表

    Echarts是现在比较火的js图表库,官网有丰富的实例和友好的入门教程.但是图表的种类很多,配置项的参数也很多,一开始我根据图表类型翻看配置项,发现这样学效率太低了,决定先制定一个简单的学习步骤,按 ...

  6. Angular 服务对象的作用范围

    1.高阶话题:服务对象的作用范围 声明服务提供者的方式: 方式1:在根模块中提供服务对象-----在整个应用中服务是单例 @Injectable({ providedIn:'root' }) expo ...

  7. ES6常见面试题

    1.es5和es6的区别,说一下你所知道的es6 ECMAScript5,即ES5,是ECMAScript的第五次修订,于2009年完成标准化 ECMAScript6,即ES6,是ECMAScript ...

  8. python3.x 基础四:json与pickple

    每次打开一个文件,只dump1次 json.dump(dump的内容,文件句柄) json.load(文件句柄) json可以处理列表/字典/字符串等简单数据类型,但是不能处理复杂的数据类型,如函数的 ...

  9. (数据科学学习手札84)基于geopandas的空间数据分析——空间计算篇(上)

    本文示例代码.数据及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在本系列之前的文章中我们主要讨论了g ...

  10. CSS实现漂亮的小水球效果

    先看效果图: 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> ...