使用数字列表和算术运算获取目标数字

Get Target Number Using Number List and Arithmetic Operations

本文关键字:数字 获取 目标 算术运算 列表      更新时间:2023-10-16

我有 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, ...需要一些限制。 并且需要更有效的算法。