Python 编程题求助
王渝林 2019-02-03 08:30:41 python入门中的一道题,自己在本字上能解出结果,就是写不出程序,求大神帮忙
题目:
Sally邀请了17名客人参加歌舞晚会。她从数字2~18中,给每一位客人分配了一个数字,自己则为1。每对舞伴的号码总和都是一个完全平方数。写一个程序,请问Sally的舞伴是数字几?
我给出的算法是:
1,从1到18,分别找到其对应的数,和构成完全平方数;
2,筛选出其中只有一对的数字;
3,从1到18中删除这些数字;
4,接着从第一步循环
代码如下:
num_list=[i for i in range(1,19)]
unique_list=[]
perfect_list=[4,9,16,25]
L=[]
for i in num_list:
for j in num_list:
if j!=i and (i+j) in perfect_list:
L.append([i,j])
if len(L)==1:
print(L)
unique_list=[L[0][0],L[0][1]]
for i in unique_list:
num_list.remove(i)
print(num_list)
L=[]