#-*- coding:utf-8 -*-
'''exercises 2.1-4:
consider the problem of adding two n-bit binary integers,
stored in two n-element arrays a and b. the sum of the two
integers should be stored in binary form in an (n + 1)-element
array c. state the problem formally and write pseudocode for
adding the two integers.
演算法思想:
我們可以將兩個陣列看做是兩個邏輯運算單元的暫存器。
暫存器中的數相加的時候需要乙個暫存器儲存進製,實際
中相加的數有三個,即兩個陣列中的數和進製暫存器中的
進製。相加結果如果大於1,則必須進製,即進製暫存器
裡的數要加1。
'''def sum_binary(a, b, n):
count = 0
c = [0] * (n + 1)
for i in range (n - 1, -1, -1):
c[i + 1] = a[i] + b[i] + count
if c[i + 1] <= 1:
count = 0
elif c[i + 1] == 2 :
c[i + 1] = 0
count = 1
elif c[i + 1] ==3 :
c[i + 1] =1
count = 1
#c陣列的第一位存入最後一步運算得到的進製值
c[0] = count
return c
a = [1, 0, 0, 1, 1, 1]
b = [0, 1, 1, 1, 0, 1]
print u'a陣列儲存的二進位制數是:',a
print u'b陣列儲存的二進位制數是:',b
print u'陣列二進位制數之和為:', sum_binary(a, b, len(a))
演算法導論 習題2 1 4
有兩個各存放在陣列a和b中的n位二進位制整數,考慮它們的相加問題。兩個整數的和以二進位制形式存放在具有 n 1 個元素的陣列c中。請給出這個問題的形式化描述,並寫出偽 以下是我寫的c 如有錯誤請指出 include stdafx.h include include define n 20 using...
演算法導論Ch2 1 4習題
題目 有兩個各存放在陣列a和b中的n位二進位制整數,考慮它們的相加問題。兩個整數的和以二進位制形式存放在具有 n 1 個元素的陣列c中。請給出這個問題的形式化描述,並寫出偽 分析 二進位制整數的編碼,此處考慮原碼和補碼,原碼可以通過轉化成補碼來運算,這也體現了補碼在運算上的優勢。實質為模擬計算機二進...
演算法導論2 1 4
有兩個各存放在陣列a和b中的n位二進位制整數,考慮他們的相加問題。翻譯的夠爛 兩個整數的和存放在有n 1個元素的陣列c中,請給出這個問題的形式化描述,並給出偽 考慮兩個1位二進位制數a和b,假設它們的和c是個2位二進位制數,c 1 a 在考慮兩個2位二進位制數 當第一位相加時,先計算進製位c2 a1...