问题:
考虑将两个 n 位二进制整数相加的问题,存储在两个 n 元素数组 A 和 B 中。两个整数的和应以二进制形式存储在 (n + 1) 元素数组 C 中。说明问题正式并编写用于添加两个整数的伪代码。
解决方案:
- C ← [1 ... n + 1] ▹ C 是零填充的。
- 对于 i ← 1 到 n
- 求和 ← A[i] + B[i] + C[i]
- C[i] ← 总和 % 2
- C[i + 1] ← sum / 2 ▹ 整数除法。
- 输出 C
问题:
- 我认为 C[i] 是 A[i]+B[i] 为什么在步骤 3 中添加 sum ← A[i] + B[i] + C[i] ?
- 为什么 sum % 2 (为什么需要在步骤 4 中使用模数?)
- 为什么 sum / 2 (为什么需要在步骤 5 中使用除法?)
你能用真实的例子解释一下上述解决方案吗?谢谢。