Math 在设计乘法和除法问题的算法时,应该使用什么样的数据结构?

Math 在设计乘法和除法问题的算法时,应该使用什么样的数据结构?,math,python-2.7,data-structures,division,multiplication,Math,Python 2.7,Data Structures,Division,Multiplication,考虑乘法的基本示例,其中12*24=288。现在,我正在寻找单个或多个数据结构,在这些结构中,我可以保存乘法过程中执行的中间步骤的每个信息。e、 g.2*4取8,1*4取4,等等。 我需要存储这些中间信息,以便方便我准确地告诉用户在操作中哪里出了问题 首先关注您需要提供的功能 例如,用户将输入其答案的一位数字,您需要检查并给出反馈。例如,在28 x 57中,假设您正在教授传统的“长乘法”,那么用户需要将28乘以7,以单位记录6,携带5,然后携带9,记住将携带的5和1相加。假设他在“十”列中输入4

考虑乘法的基本示例,其中12*24=288。现在,我正在寻找单个或多个数据结构,在这些结构中,我可以保存乘法过程中执行的中间步骤的每个信息。e、 g.2*4取8,1*4取4,等等。 我需要存储这些中间信息,以便方便我准确地告诉用户在操作中哪里出了问题


首先关注您需要提供的功能

例如,用户将输入其答案的一位数字,您需要检查并给出反馈。例如,在28 x 57中,假设您正在教授传统的“长乘法”,那么用户需要将28乘以7,以单位记录6,携带5,然后携带9,记住将携带的5和1相加。假设他在“十”列中输入4,你可能想说“是的,7x2等于14,但别忘了加上你携带的5”

因此,为了支持这一点,您需要以下函数

  getCorrectWorkingDigit( int leftDigitIndex, int rightDigitIndex)
在这种情况下,我们会打电话

  getCorrectWorrkingDigit( 1, 0 ) and get 9 as the answer

所以

您将需要一些其他此类函数,包括用于最终答案数字的函数

现在,什么样的数据结构允许您这样做?您的需求是实现您的功能。很明显,你可以构建某种类型的对象数组,表示每个工作位置,以及最终答案中的每个位置。但我认为这太过分了,您可以直接针对这个问题实现这些功能。您实际上只需要两个整数(在我的示例中是28和57),您可以动态计算函数值,无需保留目标值

写了所有这些之后,我才意识到,您可能还希望保留用户输入的值,因此数据结构可能很有用,保留单个数字将很方便

对于工作的和“行”,以及最终结果,一个数字数组如何,其中索引对应于10的幂,因此将196表示为

 [6, 9, 1]
对于工作,把它放在一个集合中,按正确数字的10的幂键。在我的28 x 57中:

 0 -> [6, 9, 1]   // this is 7 x 28
10 -> [0, 4, 1]   // this is 5 x 28
 [6, 9, 1]
 0 -> [6, 9, 1]   // this is 7 x 28
10 -> [0, 4, 1]   // this is 5 x 28