在不使用operation +的情况下实现函数plus(x,y)≡x+ y

时间:2017-02-18 21:07:13

标签: scala math functional-programming

我正在大学学习Scala语言,并且作为数据"作为数据"话题,他要我们写一个函数加上(x,y)≡x+ y而不使用操作+。

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

我如何开始考虑解决这个问题?

2 个答案:

答案 0 :(得分:2)

我不确定你教授的意图,但一个简单的方法就是减去y的负面影响:

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

答案 1 :(得分:0)

你总是可以通过这些位:

1)将X和Y一起变成另一个变量(c):

2)根据你的字节顺序将位移(c)一位移到(左/右)。检查0值。

3)XOR X和Y一起变成另一个变量(d)。如果步骤2为零值,这是您的正确答案。

如果步骤2不是零值:

4)在(c)和(d)上重复1-3。

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