2016第七届蓝桥杯C/C++ B组省赛题解 C题 (全排列的学习)
来源:互联网 发布:世界卫生组织数据库 编辑:程序博客网 时间:2024/05/20 03:41
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
B DEFA + - + --- = 10 C GHI
比如:6+8/3+952/714=10.0 就是一种解法,
5+3/1+972/486=10.0 是另一种解法。
这个算式一共有多少种解法?
利用全排列 (STL)
#include <algorithm>next_permutation(<code class="hljs cpp has-numbering">);</code>
点击学习STL
注意精度
#include <cstdio>#include <algorithm>using namespace std;int main(){ int a[11]; for(int i=1;i<=9;i++){ a[i]=i; } int flag=0; do{ if((a[1]+1.0*a[2]/a[3]+1.0*(a[4]*100+a[5]*10+a[6])/(a[7]*100+a[8]*10+a[9]))==10.0){ flag++; } }while(next_permutation(a+1,a+10)); printf("%d\n",flag); return 0;}
还有一种是用递归 这种要比上面的计算速度快
#include <stdio.h>int a[10],book[10],coun = 0;void dfs(int step){ if(step == 10) { if(a[1]*1.0 + (a[2]*1.0)/a[3] + (a[4]*100 + a[5]*10 + a[6])*(1.0)/(a[7]*100 + a[8]*10 + a[9]) == 10.0) { coun ++; } return; } for(int i = 1; i <= 9; i ++) { if(book[i] == 0) { a[step] = i; book[i] = 1; dfs(step + 1); book[i] = 0; } } return;}int main(){ dfs(1); printf("%d\n",coun); return 0;}
0 0
- 2016第七届蓝桥杯C/C++ B组省赛题解 C题 (全排列的学习)
- 2016第七届蓝桥杯C/C++ B组省赛题解 B题
- 2016第七届蓝桥杯C/C++ B组省赛题解 A题
- 2016第七届蓝桥杯C/C++ B组省赛题解 D题
- 2016第七届蓝桥杯C/C++ B组省赛题解 F题
- 2016第七届蓝桥杯C/C++ B组省赛题解 H题
- 第七届蓝桥杯C/C++ B组省赛题解
- 第七届蓝桥杯C/C++ B组省赛题解
- 第七届蓝桥杯省赛C/C++B组省赛题解
- 2016第七届蓝桥杯C/C++ B组省赛题解
- 2016第七届蓝桥杯C/C++ B组省赛题解
- 2016第七届蓝桥杯C/C++B组题解
- 2016第七届蓝桥杯 C/C++B组真题及题解
- 2016第七届蓝桥杯C/C++ B组省赛题解(自解)第一题
- 全排列(C++)
- 2016第七届蓝桥杯C/C++B组省赛第七题-剪邮票
- 2016第七届蓝桥杯C/C++ B组省赛第四题
- 2016第七届蓝桥杯C/C++ B组省赛第五题:抽签
- 我的Android学习之旅(转)
- js实现几秒页面跳转的几种方式
- 27.String VS StringBuffer/Math/Arrays
- URIs, URLs, and URNs区别
- 在他带来的新浏览器中,充满了各种各样的个性化设定
- 2016第七届蓝桥杯C/C++ B组省赛题解 C题 (全排列的学习)
- Particle filter People and code
- IT忍者神龟之MySQL数据库简单操作
- 一来是为给我爹看,他老人家每周必读本系列
- 如何开展业务是我在离开X网之后重新学的
- Android:Material Design - Style - Color(转)
- 【追求进步】两个链表的第一个公共结点
- 程序员应该知道的10大基础算法
- 渗透技巧——通过cmd上传文件的N种方法