我在CLRS练习2.14的python代码中哪里出错了

2024-03-29 08:02:52 发布

您现在位置:Python中文网/ 问答频道 /正文

所以问题是: 考虑一个添加两个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

另外,我在左边取了最低有效位数,在我完成计算后,我可以将其反转。在

我搞不清是什么错误,请帮帮我!在


Tags: 代码in元素forlenif错误二进制
2条回答

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

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

C[i+1] == 1执行比较赋值。在

相关问题 更多 >