这是代码:import itertoolsnum_cases = int(input())answer_list = []while num_cases>0: live_ans = [] question_list = [] nums = int(input()) d1 = int(input()) d2 = int(input()) sample_space= {d1, d2} temp = [] no_cases = 2**(nums-1) combs = itertools.product(sample_space, repeat = nums-1) for i in combs: temp.append(i) for i in temp: if sum(i) not in live_ans: live_ans.append(sum(i)) else: pass live_ans.sort() answer_list.append(live_ans) num_cases -= 1for i in answer_list: finalans = " ".join(map(str, i)) print(finalans)对于小输入,如:1312该程序运行良好。至于相对较大的输入,如:1586924它给出了一个内存错误。我没有为此引用任何原因,因为代码看起来根本不消耗内存。不是吗?
2 回答

收到一只叮咚
TA贡献1821条经验 获得超4个赞
看看你的以下几行:
no_cases = 2**(nums-1)
combs = itertools.product(sample_space, repeat = nums-1)
for i in combs:
temp.append(i)
2**58 = 2.8823038e+17
你计算一下为什么从这里得到内存错误
添加回答
举报
0/150
提交
取消