我正在大学学习Scala语言,并且作为数据"作为数据"话题,他要我们写一个函数加上(x,y)≡x+ y而不使用操作+。
def plus (x: Int, y: Int): Int = ???
我如何开始考虑解决这个问题?
答案 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。
这是非常递归的,它不能处理接近整数极限的数字,也不能在没有修改的情况下处理负数。它不是一个完美的解决方案,但至少它足以帮助你开始用严格数学之外的术语思考。