1、打开JUPYTER NOTEBOOK。
2、a = "1010"b = "1011"Output: "10101" 这是我们要计算的最终结果
3、index_a = len(a) - 1index_b = len(b) - 1这里看似定义长度,实际要定义序号,因为要倒序的方式进行计算。
4、carry = 0sum = ""设置进位的计算变量,最终结果要以字符串为目标。
5、while index_a >= 0 or index_b >= 0: index_a, index_b = (index_a - 1), (index_b - 1) 因为要倒序,可以设置一下循环的条件。
6、while index_a >= 0 or index_b >= 0: if index_a >= 0: x = int(a[index_a]) else: x = 0让每个数相加要先转换为整型。 index_a, index_b = (index_a - 1), (index_b - 1)
7、while index_a >= 0 or index_b >= 0: if index_a >= 0: x = int(a[index_a]) else: x = 0 if index_b >= 0: y = int(b[index_b]) else: y = 0两边都设置一下,循环完了其中一个就要等于0。 index_a, index_b = (index_a - 1), (index_b - 1)
8、while index_a >= 0 or index_b >= 0: if index_a >= 0: x = int(a[index_a]) else: x = 0 if index_b >= 0: y = int(b[index_b]) else: y = 0 if (x + y + carry) % 2 == 0: sum = sum + "0"每一位相加只有4种结果,0,1,2,3,。余数为0和2的时候当前的数要变为0. index_a, index_b = (index_a - 1), (index_b - 1)
9、while index_a >= 0 or index_b >= 0: if index_a >= 0: x = int(a[index忧溲枷茫_a]) else: x = 0 if index_b >= 0: y = int(b[index_b]) else: y = 0 if (x + y + carry) % 2 == 0: sum = sum + "0" else: sum = sum + "1"每一位相加只有4种结果,0,1,2,3,。余数为1和3的时候当前数要变为1. index_a, index_b = (index_a - 1), (index_b - 1)
10、while index_a >= 0 or index_b >= 0: if index_a >= 0: x = int(a[index忧溲枷茫_a]) else: x = 0 if index_b >= 0: y = int(b[index_b]) else: y = 0 if (x + y + carry) % 2 == 0: sum = sum + "0" else: sum = sum + "1" carry = (x + y + carry) // 2 if carry == 1: sum = sum + "1" 每一位相加只有4种结果,0,1,2,3。其中1和3除以2的时候余数为1。 index_a, index_b = (index_a - 1), (index_b - 1)
11、a 屏顿幂垂= "1010"b = "1011"index_a = len(a) - 1in颊俄岿髭dex_b = len(b) - 1carry = 0sum = ""while index_a >= 0 or index_b >= 0: if index_a >= 0: x = int(a[index_a]) else: x = 0 if index_b >= 0: y = int(b[index_b]) else: y = 0 if (x + y + carry) % 2 == 0: sum = "0" + sum else: sum = "1" + sum carry = (x + y + carry) // 2 index_a, index_b = (index_a - 1), (index_b - 1) if carry == 1: sum = "1" + sum注意"0"在sum前面。然后if要和while对齐,因为如果最后还要进位的话,判断一下。print(sum)