这就是问题:
查找具有最大产品的1000位数字中的13个相邻数字。这个产品有什么价值?
在lua中,在数字,字符串或数组中拼接并返回900位数字的最佳方式,循环或无循环是什么? (我将使用递归来查找这13位数的乘积)
请不要回答实际问题的答案。
答案 0 :(得分:-1)
我认为这样做的一种简单方法是不需要任何拼接或额外存储,这是:
sub
从字符串中的位置提取这些数字,并使用tonumber
将它们转换为要乘以的数字。我们假设我们将结果称为product
。product
重新计算为product / number-from-position-pos-13 * number-from-position-pos
。将它与迄今为止看到的最大产品进行比较,并记住位置是否是最大的产品。由于序列可能包含零,因此可能需要单独处理。您可以跟踪当前序列有多少个零,而不是乘以零,如果序列中的零个数大于零,则不会更新最大的数。如果位置pos-13
为零,则减少零的数量,当位置pos
为零时,增加零计数器。