求和进位检测

cod*_*ode 1 logic sum

我想检查两个数字相加时是否产生进位。我假设这两个数字都在 0-9 范围内。

我们的限制:

  1. 我们不能使用任何结果可能高于 9 或低于 0 的运算。
  2. 我们不能使用 0-9 范围之外的任何数字。
  3. 我们不能使用任何浮点运算或数字。

例如,我不能使用if (a+b > 9) then print("there is a carry."); as、as ifa=9b=6then a+b = 15。15 超出范围。

有什么有效的办法吗?如果有,请回答检查进位总和的有效方法。(请考虑上述限制)

Tom*_*cat 5

b = 9-b;
a = 0+a;
if (a > b) return true
Run Code Online (Sandbox Code Playgroud)

我很确定这是您可以获得的最有效的方法。

编辑:

第二行没用,所以只有两行,没有循环,就完成了。不过,我不会删除原始内容,因为我认为我确实这样做了,这很有趣。

  • 现在也可以让它“返回 a > 9-b”。:) (4认同)
  • 2号线的目的是什么? (2认同)