小红取数 时间限制:1秒 空间限制:256M 描述 小红拿到了一个数组,她想取一些数使得取的数之和尽可能大,但要求这个和必须是 k 的倍数。 你能帮帮她吗? 输入描述: 第一行输入两个正整数 n 和 k 第二行输入 n 个正整数 ai 1≤n,k≤10**3 1 ≤ ai ≤ 1 0 **10 输出描述: 如果没有合法方案,输出 - 1。 否则输出最大的和。
我写的比较简单和直观的 代码如下:
while True: n,k=map(int,input().strip().split(' ')) if n >= 1 and n <= 10**3 and k >= 1 and k <= 10**10: break else: print('n或k输入超过范围1≤n,k≤10**3,1 ≤ ai ≤ 1 0 **10') # arr = [int(input()) for _ in range(n)] arr=[13,14,17,1,2]#list(map(int,input().split(' '))) # arr=list(map(int,input().strip().split(' '))) while True: arr=list(map(int,input().strip().split(' '))) if n == len(arr): break else: print('输入{}个数:'.format(n)) # print(n,k,arr) '''求数组的所有子集res''' res=[[]] for i in arr: # print('i=',