欢迎光临散文网 会员登陆 & 注册

编程每日刷题系列六(凑算式)

2021-02-13 16:08 作者:Eric_Richard  | 我要投稿

凑算式

     B      DEF

A + --- + ------- = 10

     C      GHI

(如果显示有问题,可以参见【图1.jpg】)

这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

比如:

6+8/3+952/714 就是一种解法,

5+3/1+972/486 是另一种解法。


这个算式一共有多少种解法?

注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。

图1.jpg

暴力枚举法

把A、B、C、D、E、F、G、H、I看做独立的数字 

详细C代码如下

全排列递归回溯

不妨设

使得每个字母对应一个数组元素


C++代码:

递归全排列套路模版:

直接调用库函数next_permutation法

如果对全排列递归回溯不是很熟悉的朋友,可以用algorithm库函数的next_permutation,可以参看官方文档

http://www.cplusplus.com/reference/algorithm/next_permutation/?kw=next_permutation

这里要强调一下它的用法注意事项,这个函数适用于非重复的元素的排列,而且初始给定的数组必须是有序的!

对应该题的做法如下:(C++代码)

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!



编程每日刷题系列六(凑算式)的评论 (共 条)

分享到微博请遵守国家法律