#题目:数组中找出两个元素之和 等于给定的整数
# 思路:
# 1、将数组元素排序;
# 2、array[i]与a[j](j的取值:i+1到len_array-1) 相加;
# 3、如两两相加<整数继续,如=整数则输出元素值;
# 4、如>则直接退出,i+1 开始下一轮相加比较
def addData(array, sumdata):
temp_array = array
temp_sumdata = sumdata
print "sumdata: %d" %temp_sumdata
# 如array中没有负数,则可以先将 >sumdata 的数删掉
# 为了避免长度变化问题,可将<sumdata的数赋值给另一array
# temp_array = []
# len_temp_array2 = len(temp_array2)
# for i in range(0,len_temp_array2):
# if temp_array2[i] < temp_sumdata:
# temp_array.append(temp_array2[i])
sorted(temp_array)
len_temp_array = len(temp_array)
# 计数符合条件的组数
num = 0
for i in range(0, len_temp_array-1):
for j in range(i+1, len_temp_array):
if temp_array[i] + temp_array[j] < temp_sumdata:
continue
elif temp_array[i] + temp_array[j] == temp_sumdata:
num += 1
print "Group %d :" % num
print "下标:%d, 元素值: %d" %(i, temp_array[i])
print "下标:%d, 元素值: %d" %(j, temp_array[j])
else:
break
if __name__=="__main__":
test_array = [-1,1,2,3,4,5,6,7,8]
test_sumdata = 6
addData(test_array, test_sumdata)