class solution(object):
def addnegabinary(self, arr1, arr2):
""":type arr1: list[int]
:type arr2: list[int]
:rtype: list[int]
"""d =
if arr1 == [0]:
sum1 = 0
else:
sum1 = 0
for i in range(len(arr1)):
if arr1[i] == 1:
sum1 = sum1 + (-2) ** (len(arr1) - 1 - i)
if arr2 == [0]:
sum2 = 0
else:
sum2 = 0
for i in range(len(arr2)):
if arr2[i] == 1:
sum2 = sum2 + (-2) ** (len(arr2) - 1 - i)
print(sum1,sum2)
c = sum1 + sum2
if c == 0:
return [0]
while c:
if c % -2 != 0:
d = [1] + d
#c = int(c/-2)
c= c//(-2)
else:
d = [0] + d
#c = int(c/-2)
c= c // (-2) +1
return d
給出基數為 -2 的兩個數 arr1 和 arr2,返回兩數相加的結果。
數字以 陣列形式 給出:陣列由若干 0 和 1 組成,按最高有效位到最低有效位的順序排列。例如,arr = [1,1,0,1] 表示數字 (-2)^3 + (-2)^2 + (-2)^0 = -3。陣列形式 的數字也同樣不含前導零:以 arr 為例,這意味著要麼 arr == [0],要麼 arr[0] == 1。
返回相同表示形式的 arr1 和 arr2 相加的結果。兩數的表示形式為:不含前導零、由若干 0 和 1 組成的陣列。
#c = int(c/-2)
c= c // (-2) +1 . 注意這只能這麼用。。。。。。。
1073 負二進位制數相加
題目描述 給出基數為 2 的兩個數 arr1 和 arr2,返回兩數相加的結果。數字以 陣列形式 給出 陣列由若干 0 和 1 組成,按最高有效位到最低有效位的順序排列。例如,arr 1,1,0,1 表示數字 2 3 2 2 2 0 3。陣列形式 的數字也同樣不含前導零 以 arr 為例,這意味著要...
5078 負二進位制數相加
給出基數為 2的兩個數arr1和arr2,返回兩數相加的結果。數字以陣列形式給出 陣列由若干 0 和 1 組成,按最高有效位到最低有效位的順序排列。例如,arr 1,1,0,1 表示數字 2 3 2 2 2 0 3。陣列形式的數字也同樣不含前導零 以arr為例,這意味著要麼arr 0 要麼arr 0...
leetcode 5078 負二進位制數相加 C語言
演算法思想 先用快取將列加結果儲存起來,其中可能包括 2的數字 將其中不等於1或者0的,進行進製換算 2時,進製 1 等於 1是,將本位置為1,高一位 1 void reve int arr,int len 將其中不等於1或者0的,進行進製換算 2時,進製 1 等於 1是,將本位置為1,高一位 1 ...