0

所以问题是:“考虑一个将两个 n 位二进制整数相加的问题,存储在两个 n 元素数组 A 和 B 中。两个整数的和应该以二进制形式存储在 (n+1) 元素中数组 C. 正式陈述问题并编写将两个整数相加的伪代码。”

我解决这个问题的python代码是:

A = [1,0,1,1,0,1,0]
B = [1,1,1,0,1,0,0]
n = len(A)
C = [0,0,0,0,0,0,0,0]

for i in range(0, n):
    C[i] = A[i] + B[i] + C[i]
    if C[i] == 2:
        C[i] = 0
        C[i+1] == 1
    elif C[i] == 3:
        C[i] = 1
        C[i+1] = 1


print C

我还取了左边的最低有效数字,在我完成计算后我可以反转。

我无法弄清楚错误是什么,请帮忙!

4

2 回答 2

5

C[i+1] == 1进行比较而不是分配。

于 2015-07-08T18:51:30.537 回答
0

万一,为了简洁起见,您希望稍作修改(伪代码):

for i = C.length to i = 2
  C[i] = C[i] + A[i-1] + B[i-1]
  if C[i] > 1
    C[i-1] = C[i-1] + 1
    C[i] = C[i] - 2
于 2016-05-28T19:20:28.200 回答