六、题目:寒假作业:
现在小学的数学题目也不是那么好玩的。
看看这个寒假作业:

□ + □ = □
□ - □ = □
□ × □ = □
□ ÷ □ = □

每个方块代表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

就算两种解法。(加法,乘法交换律后算不同的方案)
你一共找到了多少种方案?
请填写表示方案数目的整数。


  • 分析思路
    这道题目是从13个数中选12个填到方框里面,是一个全排列问题。最终13个数都会填完

  • 代码:
    第一段代码,虽然能够运行出结果,但是花费时间需要将近1分钟,做填空题可以用。能运行出答案就行。

#include<iostream>
using namespace std;int a[]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int ans;
bool check(){if(a[0]+a[1]==a[2]&&a[3]-a[4]==a[5]&&a[6]*a[7]==a[8]&&a[9]%a[10]==0&&a[9]/a[10]==a[11])return true;return false;
}
int f(int k){if(k==13){ //当数字为13的时候,可以不同return,因为后面for循环它通不过 if(check())ans++;}for(int i=k;i<13;i++){{int t=a[i];a[i]=a[k];a[k]=t;}continue;
f(k+1);
{int t=a[i];  //回溯,返回原来状态 a[i]=a[k];a[k]=t;
}
}
int main(){f(0);cout<<ans<<endl; return 0;
}

改进方法:提前检知
{int t=a[i];a[i]=a[k];a[k]=t;};
这一行确定了k的位置

  • 代码:
#include<iostream>
using namespace std;int a[]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int ans;
bool check(){if(a[0]+a[1]==a[2]&&a[3]-a[4]==a[5]&&a[6]*a[7]==a[8]&&a[9]%a[10]==0&&a[9]/a[10]==a[11])return true;return false;
}
int f(int k){if(k==13){ //当数字为13的时候,可以不同return,因为后面for循环它通不过 if(check())ans++;}for(int i=k;i<13;i++){{int t=a[i];a[i]=a[k];a[k]=t;}//提前检知,节省运行时间 if((k==2&&a[0]+a[1]!=a[2])||k==5&&a[3]-a[4]!=a[5]){  //判断符合条件,再进行递归,不符合直接退出 {int t=a[i];a[i]=a[k];a[k]=t;}continue;
}
f(k+1);
{int t=a[i];a[i]=a[k];a[k]=t;}//回溯,返回原来状态
}
}
int main(){f(0);cout<<ans<<endl; return 0;
}


如果觉得答案可能有问题,可以把所有的符合条件的列举出来

  • 代码:
#include<iostream>
using namespace std;int a[]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int ans;
bool check(){if(a[0]+a[1]==a[2]&&a[3]-a[4]==a[5]&&a[6]*a[7]==a[8]&&a[9]%a[10]==0&&a[9]/a[10]==a[11])return true;return false;
}
int f(int k){if(k==13){ //当数字为13的时候,可以不同return,因为后面for循环它通不过 if(check()){printf("%d+%d=%d  %d-%d=%d %d*%d=%d %d/%d=%d\n"); ans++;}
}for(int i=k;i<13;i++){{int t=a[i];a[i]=a[k];a[k]=t;}//提前检知,节省运行时间 if((k==2&&a[0]+a[1]!=a[2])||k==5&&a[3]-a[4]!=a[5]){  //判断符合条件,再进行递归,不符合直接退出 {int t=a[i];a[i]=a[k];a[k]=t;}continue;
}
f(k+1);
{int t=a[i];a[i]=a[k];a[k]=t;}//回溯,返回原来状态
}
}
int main(){f(0);cout<<ans<<endl; return 0;
}

这是列举的部分结果

2016蓝桥杯C++A:寒假作业(详细解析)相关推荐

  1. 十二届蓝桥杯省赛B组C++解析(填空题部分)

    十二届蓝桥杯省赛B组C++解析(填空题部分) 目录 十二届蓝桥杯省赛B组C++解析(填空题部分) A:空间 B:卡片 C:直线 D:货物摆放 E:路径 A:空间 该题是一道计算机基础原理题,这里需要了 ...

  2. java蓝桥杯凑算是,第七届蓝桥杯JAVA B组真题解析-凑算式(第三题)

    第七届蓝桥杯JAVA B组真题解析-凑算式(第三题) 凑算式 A+B/C+DEF/GHI =10 (如果显示有问题,可以参见[图1.jpg]) 这个算式中AI代表19的数字,不同的字母代表不同的数字. ...

  3. 2013第四届蓝桥杯Java组省赛题解析

    2013第四届蓝桥杯Java组省赛题解析 目录 第一题:高斯日记 第二题:马虎的算式 第三题:第39级台阶 第四题:黄金连分数 ​第五题:前缀判断 第六题:三部排序 ​第七题:错误票据 第八题:翻硬币 ...

  4. 2016蓝桥杯省赛---java---A---6(寒假作业)

    题目描述 现在小学的数学题目也不是那么好玩的. 看看这个寒假作业:□ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □(如果显示不出来,可以参见[图1.jpg])每个方块代表 ...

  5. 2016蓝桥杯C++A组第六题 寒假作业【暴力搜索】

    原题: 现在小学的数学题目也不是那么好玩的. 看看这个寒假作业:□ + □ = □□ - □ = □□ × □ = □□ ÷ □ = □(如果显示不出来,可以参见[图1.jpg])每个方块代表1~13 ...

  6. 蓝桥杯c语言试题寒假作业,2016蓝桥杯省赛C/C++A组第六题 寒假作业(示例代码)

    题意:现在小学的数学题目也不是那么好玩的. 看看这个寒假作业: □ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □ 每个方块代表1~13中的某一个数字,但不能重复. 比如: ...

  7. 2016年 第7届 蓝桥杯 Java B组 省赛解析及总结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:部分 ...

  8. 2016蓝桥杯b组java试题及答案_2016年第七届蓝桥杯java B组省赛试题

    2016年第七届蓝桥杯java B组省赛试题 1-3.结果填空 4-5.代码填空 6-7.结果填空 8-10.程序设计 1.煤球数目  (结果填空) 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, ...

  9. 2016蓝桥杯C组C/C++决赛(公费旅游)总结

    作为一个普通二本院校的专科生,我已经在学校附近一家手游公司实习半年多了.先说下自己的情况吧,我们学校一直对ACM这一块儿不重视,毕竟愿意学算法的人少之又少,大部分学生更愿意毕业前培训一下到北上广造假工 ...

最新文章

  1. python 图像处理模块pillow
  2. 二元查找树变双向链表
  3. [Week17] 个人阅读作业
  4. 求解九宫格的Java_使用全排列方法解九宫格问题
  5. birt 报表设计(2)—介绍
  6. 计算沙盒下文件夹内容大小 清空沙盒 文件 目录
  7. 避免游戏中的批量 sql
  8. JQ实现列表增删以及上下移动
  9. 【MediaSoup】UDPSOCKET recv数据到rtcp包解析
  10. 2020年中国人口出生率为8.52‰,首次跌破10‰,创下1978来新低
  11. JDk1.8(Win 10版 64位)安装、环境变量配置及第一个Java程序
  12. PHP云尚发卡,搭建个人发卡平台教程:云尚发卡平台搭建
  13. 计算机网络三种模型(OSI模型、TCP/IP模型、五层通用模型)、各层作用
  14. Retina屏下的图片优化
  15. PPOJ1100: 诡异的楼梯
  16. java递归计算N!
  17. babylonjs 导入gltf文件后设置x轴坐标不起作用解决方法
  18. Week 6 Maze
  19. 泛洪攻击以及防护方法
  20. JDBC编程——从属性资源文件中读取数据库的信息

热门文章

  1. python编程入门书籍-零基础学习Python编程,这8本书必看!
  2. python下载教程-如何下载python包
  3. python与java前景-数据告诉你,Python、Java、C+哪个更有发展前途?
  4. python在线编辑器手机-‎App Store 上的quot;Python AI - 代码编辑器”
  5. css文字竖直显示_CSS属性设置 -- 盒子模型
  6. Error in mounted hook: “TypeError: Cannot read property ‘init‘ of undefined“
  7. 多级三目运算符的判断
  8. echarts环形图
  9. php7 错误处理,PHP7升级-异常错误处理
  10. 用php写圣诞祝福页面,圣诞祝福文案 抖音圣诞节一句话祝福