使用数字列表和算术运算获取目标数字
Get Target Number Using Number List and Arithmetic Operations
我有 2 个输入:
- S[] = 数字列表
- 目标值
S{2,9}
目标值 = 729
我想使用这些给定的数字找到一个可以生成目标值的算术运算。我们可以根据需要多次使用任何数字。只允许求和和乘法运算。
例如:9*9*9 = 729
此外,我们可以使用数字组合。
例如:
S{2,9}
目标值 = 49
所以解决方案可以是:
2+9+9+29 = 49
我想使用C++为此使用动态编程应用程序。
思考这个算法。
1. 使用该数字集制作所有数字。{2, 9} target=729 n = 数字集数字 -使数字混合的数字低于目标, 和可复制的。 数字长度1 ;n 计数 ;2, 9 数字长度2 ;n*n 计数 ;22, 29, 92, 99 数字长度3 ;n*n*n 计数 ;222, 229, 292, 299, 922, 929, 992, 999 (删除大于 729) 数字长度 4 ;没有更多的发现。目标长度为 3。 - 使新数字由上找到的数字设置 2, 9, 22, 29, 92, 99 222, 229, 292, 299 m = # 的上集。 o = 2(# 运算符) -和操作案例...使用运算符加号和乘法。 2.进行操作设置。 使用 1 个节点;检查上部元素是否等于目标 M 案例 使用 2 节点 ; 选择 2 个元素。,然后选择运算符。 1 操作员使用。 m*m * o 案例 使用3节点;选择 3 个元素。,然后选择运算符。 2.操作员使用。 m*m*m * o*o 案例 等等。 但是这样做多少次呢? 在更坏的情况下, 如果数字集有 1。 1+1+1+...=目标(729次) 而这个问题...1*1*1*...无限案例... 1*9*9*9
, 1*1*1*9*9*9, 1*...*1*9*9*9, ...需要一些限制。 并且需要更有效的算法。
相关文章:
- 如何获取一个数字的前3位
- 获取 2D 数组 c++ 中的所有数字对
- 获取第 n 个最大数字
- 获取 2 个数字之间的差异百分比
- 在获取从文件到矢量的每一行之后,数字将被更改或销毁
- QChar 如果 'isDigit()' 则获取数字值
- 从(排序的)数字列表中获取数字范围
- 有没有更简单的方法可以从用户那里获取三个数字并按升序打印它们?
- 如何以正确的时区从XTS索引中获取数字时间?
- 如何获取数字的更改
- 获取具有特定距离的键值对数组中的最大数字
- 有没有一种更快的方法,从特定的数字池中获取随机数
- 如何仅从字符串中获取数字
- 如何从大数字中获取指定的数字?
- 从数组指针中获取怪异的数字
- 获取数字小数部分的最佳方法
- 获取数字最左边两个位的值的最便宜的方法是什么?
- 使用数字列表和算术运算获取目标数字
- 从字符串 c++ 中获取所有数字
- 遍历 std::string 时如何获取没有数字的字符?