凑算式(枚举与深度优先搜索)
凑算式
如图,这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
思路一:
可以用枚举暴力算法
#include <stdio.h>
int main()
{ double a,b,c,d,e,f,g,h,i;
int sum=0;
for( a=1; a<=9; a++)
for( b=1; b<=9; b++)
{
if(a==b) continue;
for( c=1; c<=9; c++)
{
if(c==a||c==b) continue;
for( d=1; d<=9; d++)
{
if(d==a||d==b||d==c)continue;
for( e=1; e<=9; e++)
{
if(e==a||e==b||e==c||e==d) continue;
for( f=1; f<=9; f++)
{
if(f==a||f==b||f==c||f==d||f==e) continue;
for( g=1; g<=9; g++)
{
if(g==a||g==b||g==c||g==d||g==e||g==f) continue;
for( h=1; h<=9; h++)
{
if(h==a||h==b||h==c||h==d||h==e||h==f||h==g) continue;
for( i=1; i<=9; i++)
{
if(i==a||i==b||i==c||i==d||i==e||i==f||i==g||i==h) continue;
if(a+b/c+(d*100+e*10+f)/(g*100+h*10+i)==10)
sum++;
}
}
}
}
}
}
}
}
printf("%d",sum);
return 0;
}
思路二:
深度优先搜索
#include<stdio.h>
double a[10];
int book[10],sum;
void fun(int step)
{
int i;
if(step==10)
{
if(a[1]+a[2]/a[3]+(a[4]*100+a[5]*10+a[6])/(a[7]*100+a[8]*10+a[9])==10)
{sum++;
}
return;
}
for(i=1;i<=9;i++)
{
if(book[i]==0)
{
a[step]=i;
book[i]=1;
fun(step+1);
book[i]=0;
}
}
return;
}
int main()
{
fun(1);
printf("%d",sum);
return 0;
}
凑算式(枚举与深度优先搜索)相关推荐
- 深度优先搜索是什么?
我们知道,计算机的计算速度是比人脑快很多很多很多的...因此计算机可以将人脑无法一一枚举的状态或者说方式在很短的时间内枚举出来从而得出最终答案,于是便产生搜索的算法,实际上也算是暴力枚举吧,只不过是枚 ...
- 【算法】蓝桥杯dfs深度优先搜索之图连通总结
前言 上两篇文章 → <[算法]蓝桥杯dfs深度优先搜索之排列组合总结> → <[算法]蓝桥杯dfs深度优先搜索之凑算式总结> 为了重申感谢之意,第三次声明下文的 ...
- 【算法】蓝桥杯dfs深度优先搜索之排列组合总结
[导航] 上一篇文章 → <[算法]蓝桥杯dfs深度优先搜索之凑算式总结> 为了重申感谢之意,再次声明下文的大部分灵感均来自于[CSDN]梅森上校<JAVA版本:DFS算法题解两 ...
- 基础算法·深度优先搜索
祝食用愉快XD 题目链接 (是一道胡乱出的题) U56815 来走迷宫鸭! 解题思路 深度优先搜索,如果能不碰墙地到达右下角的出口,就把旗子立起来表示找到了出口. 什么?你没听过深度优先搜索 没事,且 ...
- 【洛谷】选数---深度优先搜索+单调不降去重
题目描述 传送门:https://www.luogu.com.cn/problem/P1036 已知n个整数x1,x2-xn,以及一个整数k(k<n).从n个数字中任选k个数字相加,可分别得到一 ...
- 【数据结构与算法】2.深度优先搜索DFS、广度优先搜索BFS
原文链接:https://blog.csdn.net/qq_41681241/article/details/81432634 总结 一般来说,广搜常用于找单一的最短路线,或者是规模小的路径搜索,它的 ...
- 一文搞懂深度优先搜索、广度优先搜索(dfs、bfs)
前言 你问一个人听过哪些算法,那么深度优先搜索(dfs)和宽度优先搜索(bfs)那肯定在其中,很多小老弟学会dfs和bfs就觉得好像懂算法了,无所不能,确实如此,学会dfs和bfs暴力搜索枚举确实利用 ...
- c语言中穷竭算法,hihocoder#1054 : 滑动解锁(深度优先搜索)
描述 滑动解锁是智能手机一项常用的功能.你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点.这些划过的点所组成的有向折线,如果与预设的折线在图案.方向上 ...
- LQ训练营(C++)学习笔记_深度优先搜索
深度优先搜索 三.深度优先搜索 1.普通深度优先搜索 1.1 迷宫问题描述 1.2 代码实现 2.抽象深度优先搜索问题 2.1 和为K问题 2.1.1 问题描述 2.1.2 解题思路 2.1.3 代码 ...
- LeetCode算法总结-回溯法与深度优先搜索
转载自 LeetCode算法总结-回溯法与深度优先搜索 回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标.但当探索到某一步时,发现原先选择并不优或达不到目标,就退 ...
最新文章
- 剑指offer 40.最小的 K 个数 python代码
- Python 列表推导式 - Python零基础入门教程
- [原创]java WEB学习笔记54:Struts2学习之路--- 编写Struts2 的第一个程序,HelloWord,简述 package ,action,result...
- 爬取上千个年度基金后,才知道这有多坑,千万别被人当韭菜给割了
- 火星人谚语系列之四:对问题最深入的认识是知道答案
- “在 GitHub 用十年攒的 54k+ Star,一个误操全没了”
- opencv图像分析与处理(14)- 图像压缩基础知识
- docker tensorflow_用Docker容器方式安装TensorFlow
- Maya2018基础(二)展UV
- vtk-m的安装与配置
- BZOJ 2339 卡农(组合数学)
- centos 7(桌面应用)-桌面的应用合集
- Regin恶意软件:何以潜伏如此久?
- Tower of Hanoi(汉诺塔)详解
- jquery基础学习记录
- POJ 3264 线段树
- 一张图让你看遍10个VR细分领域!
- 阿里面试官对面试者的忠告
- 微信公众号更新缓存问题--批量添加版本号
- python如何微信公众号刷票_问卷星刷票
热门文章
- L2十档行情API接口(十档委托、买卖队列、逐笔成交)web或软件应用xml数据接口
- l2逐笔接口更新的频率是多少?
- 南航C语言答案,2009-2011南航复试题(回忆版) 予人玫瑰,手有余香
- 大神论坛 利用活跃变量分析来去掉vmp的大部分垃圾指令
- 信息系统高级项目管理师:十大知识领域+五大过程组
- PPT2010无法从所选的文件中插入视频
- 智慧城市将成为推进我国新型城镇化的新思路、新手段、新模式
- 考研程序设计30题系列(21-30题)
- 第015讲: 跟王家林学习从1000个代码案例中学习人工智能和大数据实战第015讲:Scala中Tuple源码剖析及代码实践
- TI 蓝牙4.0芯片 cc2540