找出所有a,b,c,d,e,使得a + b + c + d + e = 1000,且不超过3个循环

时间:2019-07-08 04:41:45

标签: javascript algorithm

我的一位朋友提出了这个问题,我正在尝试为此找到最佳解决方案。要求是:

  • a,b,c,d,e是0到1000之间的整数,a,b,c,d,e之间没有关系,因此a可以等于b或c,...
  • 不能使用3个以上的循环(可以是3个嵌套循环或3个普通循环,或2个嵌套循环+ 1个普通循环,...)
  • 您需要找到(a,b,c,d,e)和以下所有答案:
a + b + c + d + e = 1000

基本方法是,我们将执行以下操作:循环所有a,b,c,d,e,其值从0到1000,然后将它们的总和设为1000,我们将其打印出来,因此我们将有5个循环。

我在这里使用5个循环在Python中实现了一个解决方案:https://repl.it/repls/BestKnobbyDonateware

您能找到通过3个循环解决此问题的方法吗?

更新:

这是我的解决方法:

img

这不是家庭作业,这只是一个有趣的问题,我想知道其他开发人员将解决此问题。

注意:

尝试不使用任何隐藏循环,例如初始化到范围

但是Sum和其他数学列表运算不算作循环,只要您在相对较小的一组元素上使用它们即可。

如果使用函数,则生成此类小元素的排列将被视为一个循环。

0 个答案:

没有答案