逻辑书上写的已经很清楚了,但是书上的代码里有一点错误,最大能取到的数字是‘11111’ 而不是‘1111’,好了,下面上代码:

python:def fun(x): #初始化一个方法用来查看某个搭建某个数字需要多少根火柴棍num = 0 #初始化一个变量存储数字x需要的总的火柴根数f = [6, 2, 5, 5, 4, 5, 6, 3, 7, 6]if x // 10 != 0: #如果这个数是两位数以上,需要从个位数开始逐个计算每个单独的数字需要的火柴个数while x // 10 != 0: #当x是两位数以上时digit = x % 10 #取x的最后一个数字num += f[digit] #将搭建这个数字需要的火柴数加到需要的总根数里x = x // 10 #将x中除了个位数字之外的数字重新赋值给xnum += fun(x) #退出while循环时,x是原数字中最高位的数,将这个数字的火柴根数加到总根数里面else:num += f[x] #这个数只有一位数字return numif __name__ == '__main__':m = int(input('输入火柴根数(不超过24):'))res = 0  # 初始化一个变量存储符合条件的火柴棍等式的个数for a in range(11112):for b in range(11112):c = a + bif fun(a) + fun(b) + fun(c) == m - 4:res += 1print(str(a) + ' + ' + str(b) + ' = ' + str(c))else:continueprint('满足条件的等式有' + str(res) + '个')

Java、python实现啊哈算法 —— chapter3 火柴棍等式相关推荐

  1. 《啊哈算法》学习三 火柴棍等式

    通过求解火柴棍等式来学习枚举算法. 现有m根(m≤24)火柴棍,那么可以拼出多少个不同的形如A+B=C的等式呢?(本题根据NOIP2008提高组第二题改编) 注意: 1.加号与等号各自需要两根火柴棍. ...

  2. 搜索法求解火柴棍等式问题 基于python

    完整代码:https://download.csdn.net/download/pythonyanyan/87430541 任务描述 1.1 作业要求 用火柴棍可以摆成一个数字等式,希望移动一根火柴使 ...

  3. 第16周 啊哈算法 火柴棍等式

    问题及代码: /*m<=24根火柴棍,求可以构造出多少个满足A+B=C的等式, 其中=和+各需2根火柴棍*/ #include<stdio.h> int fun(int x){int ...

  4. 算法 3.3——火柴棍等式

    现在有n跟火柴棍,希望拼出A+B=C的等式.等式中的A,B,C均是用火柴棍拼出来的整数. 0需要6根火柴,1需要2根火柴,2需要5根火柴,3需要5个火柴,4需要4根火柴,5需要5根火柴,6需要6根火柴 ...

  5. 啊哈!算法—火柴棍等式

    现手中有m(m<=24)个火柴棍,希望拼出A+B=C等式.等式中的A.B.C均为火柴棍拼出来的整数(若该数非0,则最高位不能为0). 注意: 1.加号与等号各自需要2根火柴棍: 2.如果A不等于 ...

  6. 火柴棍等式(暴力枚举)

    题目描述:给你n个火柴棍,判断能够构成多少个A+B=C(A,B,C为由0~9构成的正整数)形式的等式,其中+与=各由两个火柴棍构成,非零数字的最高位不为零,0 ~ 9的构成如下: 时间限制:1s n& ...

  7. 火柴棍等式(NOIP)

    问题描述 给你n根火柴棍,你可以拼出多少个形如"A+B=C"的等式?等式中的A.B.C是用火柴棍拼出的整数(若该数非零,则最高位不能是0).用火柴棍拼数字0-9的拼法如图所示: 注 ...

  8. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  9. java python算法_用Java,Python和C ++示例解释的搜索算法

    java python算法 什么是搜索算法? (What is a Search Algorithm?) This kind of algorithm looks at the problem of ...

最新文章

  1. linux longlong大小,Linux基本数据类型大小——int,char,long int,long long int
  2. linux 用户态与内核态通信方式简介
  3. webpack vue app.js自动注入页面.为app.js增加随机参数
  4. 自定义log4j2配置文件地址
  5. vscode运行虚拟环境virtualenv时报错:\Scripts\Activate.ps1,因为在此系统上禁止运行脚本
  6. 带你搞明白什么是缓存穿透、缓存击穿、缓存雪崩
  7. Gartner:企业机构需重新定义网络安全领导者角色
  8. [转] VS2010中VC9.0Runtime与VC10.0Runtime在win7上装不上提示error code 1603
  9. Spring MVC应用@Autowired和@Service进行依赖注入
  10. 如何利用路由器防止DoS拒绝服务疯狂***
  11. Flutter实战之Sqlite的用法入门
  12. spring mvc 学习 转载
  13. C语言--课程管理信息系统
  14. 《大数据技术原理与应用》第三版 林子雨编著 第一章 大数据概述
  15. Vb自动读取本地HTML,VB读取网页内容 方法汇总 - mystic的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  16. 详解高级前端面试常问的EventLoop
  17. [渝粤教育] 西南科技大学 古代汉语 在线考试复习资料
  18. matlab逻辑回归两次成绩录取查询,【多元逻辑回归分类】基于matlab的MNIST实践
  19. 【分享】超级菜鸟另类玩swf反汇编
  20. 智慧交通云计算中心解决方案

热门文章

  1. 正则表达式 常用工具类
  2. PR如何导出MOV格式
  3. Redis之布隆过滤器与布谷鸟过滤器
  4. STM8 IAP升级程序设计详解 - IAR环境
  5. 中国足球队输球的原因大总结
  6. Linux常用命令大全(收藏版)
  7. 四个凡事:有章可循,有人负责,有据可查,有人监督
  8. 前端项目中位图和矢量图的优缺点及iconfont小图标制作流程
  9. mybatis + easy excel 导出百万级数据仅需要1g内存
  10. .Net设计规范读书笔记