Scala 机具功能增强型(x,y)≡ 不使用操作的x+y+

Scala 机具功能增强型(x,y)≡ 不使用操作的x+y+,scala,math,functional-programming,Scala,Math,Functional Programming,我在大学里学习Scala语言,作为数据主题函数的家庭作业,他要求我们写一个函数plusx,y≡ x+y不使用操作+ def plus (x: Int, y: Int): Int = ??? 我需要如何开始思考来解决这项任务?我不确定你的教授打算做什么,但一个简单的方法就是减去y的负数: 您始终可以通过位进行传递: 1和X与Y一起构成一个不同的变量c: 2位c向左/向右移动一位,具体取决于您的endian。检查0值 3将X和Y一起异或为另一个变量d。如果步骤2为零值,则这是您的正确答案 如果步骤

我在大学里学习Scala语言,作为数据主题函数的家庭作业,他要求我们写一个函数plusx,y≡ x+y不使用操作+

def plus (x: Int, y: Int): Int = ???

我需要如何开始思考来解决这项任务?

我不确定你的教授打算做什么,但一个简单的方法就是减去y的负数:


您始终可以通过位进行传递:

1和X与Y一起构成一个不同的变量c:

2位c向左/向右移动一位,具体取决于您的endian。检查0值

3将X和Y一起异或为另一个变量d。如果步骤2为零值,则这是您的正确答案

如果步骤2不是零值:

4在c和d上重复1-3


这是非常递归的,它不能处理接近整数极限的数字,也不能不修改就处理负数。这不是一个完美的解决方案,但至少它足以帮助你开始用严格数学以外的术语思考。

听起来像是一堂递归课。我猜你可以使用+1和-1,但没有其他的。是吗?显然你要用42美元加13美元。这节课是关于名称混乱和名称代表什么。语言哲学,对吗?有什么想法吗?你自己做作业吗?说真的,你为什么要别人替你做?你在这里找什么?一个完整的答案,如果是,为什么?我们可以提供更多关于你可以使用什么的信息。如果这似乎是一个常见的分配,您可以使用位运算符,请参见这里@TheArchetypalPaul我刚才问过我需要如何开始考虑这项任务。这不是必须的任务。我们还没有研究Scala中的位运算符。我会问我的老师关于这个微型家庭作业的详细情况。根据你目前提供的详细情况,很难说你会如何开始考虑它。我们需要知道允许和不允许的特性。
def plus (x: Int, y: Int): Int = x - -y