说明:
去年在数学课上,我们有时会在作业上获得这些极为简单的问题,尽管这些问题同样令人讨厌,它们被称为“钻石拼图”。这些基本上是问题,我们将在其中得到一个总和,然后要求乘积找到两个数字,当相乘时得出两个数字,相加时得出和。这些使我发疯,因为我知道如何解决它们的唯一方法(在代数I中)是只列出乘积的因子,然后查看添加哪些因子来求和。(由于当时我不知道如何使用二次方)更不用说,它们并不是对数学的完全挑战。但是,我刚想到我应该写一个程序。这就是您今天的挑战!编写一个可以解决钻石难题的程序。
示例
为模糊的图像致歉,这是我能找到的最好的。另外,也不要理会气泡中的数字。菱形的顶部是乘积,底部是和,底部和右侧是两个数字。答案如下:(这些也是您的测试用例)
- 9,-7
- -2,-1
- 5、8
- -9,-9
规则:
- 您不得使用任何预定义的函数或类来帮助您完成此任务。
- 您的代码必须是完整的程序或函数,一旦找到它们,它们将返回或打印答案
- 输入是总和和乘积,它们是作为功能参数或用户输入输入的
规格:
- 假定两个数字,总和和乘积将始终是整数。
- 这两个答案都将在-127至127之间。
- 您的输入将是两个整数(总和和乘积)。
请记住,这是代码高尔夫球,因此最短的字节数为准。请用标准的##语言名称,字节数为答案命名
编辑:此外,Doorknob指出,这实际上是“分解形式为x ^ 2 + bx + c的二次项”。这是思考和应对这一挑战的另一种方式。:D
(x + n)(x + m)
会给您x^2 + (n+m)x + (n*m)
,因此将二次方分解为因子就基本上等于这个问题(如果我正确理解的话)。
x^2 + bx + c
”,对吗?