所以我正在制作这个减法程序,真的不知道为什么它不适用于这两个值。不过,对于其他每一个来说,它都有效吗?
def binmin(x, y):
lenx = len(x)
leny = len(y)
x1 = list(x)
y1 = list(y)
difference= 0
one = 0
result = ""
for i in range(len(x)):
difference = str((int(x1[lenx - 1 - i])) - int(y1[leny - 1 - i]))
if difference == "-1":
difference = 2 - int(y1[leny - 1 - i])
one = 1
elif difference == "-2":
one = 1
difference = 0
else:
one = 0
y1[leny - i - 2] = int(y1[leny - i - 2]) + one
result = str(difference) + str(result)
return result
print(binmin("11110000","00010001"))
更改:
if difference == "-1":
difference = 2 - int(y1[leny - 1 - i])
one = 1
至:
if difference == "-1":
difference = 1
one = 1
当difference
最初是"-1"
时,您需要借用,因此您实际上是在将2
添加到差异中。由于差异最初是-1
,因此新差异需要2-1
=1
。
最初的调整只有在int(y1[leny - 1 - i])
是1
的情况下才有效,如果之前通过早期借款进行了调整,则可能不会有效,在这种情况下,可能是2
。