Python练习题答案: 预热速度。【难度:2级】--景越Python编程实例训练营,1000道上机题等你来挑战

mac2026-03-12  2

预热速度.【难度:2级】:

答案1:

def f(n): dr = sum(map(int, str(n))) deep = sum(d*d for d in map(int, str(dr))) return (-dr-deep, n) def sorted_comm_by_digs(arr1, arr2): return sorted(set(arr1) & set(arr2), key=f)

答案2:

def dr(n): return sum(int(i) for i in str(n)) def dsddr(n): return sum(int(i)**2 for i in str(dr(n))) def f(n): return dr(n) + dsddr(n) def sorted_comm_by_digs(arr1, arr2): arr1 = set(arr1) arr2 = set(arr2) common_elements = sorted(arr1.intersection(arr2)) return sorted(list(common_elements), key=f, reverse=True)

答案3:

dr = lambda n: sum(map(int, str(n))) dsddr = lambda n: sum(int(c)**2 for c in str(dr(n))) f = lambda n: dr(n) + dsddr(n) def sorted_comm_by_digs(arr1, arr2): return sorted({x for x in set(arr1).intersection(arr2)}, key=lambda x: (-f(x), x))

答案4:

def split_num(n): return map(int, str(n)) def f(num): dr = sum(split_num(num)) dsddr = sum(n*n for n in split_num(dr)) return (-dr - dsddr, num) def sorted_comm_by_digs(arr1, arr2): return sorted(set(arr1) & set(arr2), key=f)

答案5:

def dr(n): return sum(map(int, str(n))) def dsddr(n): return sum(int(j) ** 2 for j in str(dr(n))) def f(n): return (-(dr(n) + dsddr(n)), n) def sorted_comm_by_digs(arr1, arr2): return sorted(set(arr1) & set(arr2), key=lambda x: f(x))

答案6:

def sorted_comm_by_digs(arr1, arr2): def f(n): out = n dr = 0 while n: dr, n = dr + n % 10, n // 10 dsddr = 0 n = dr while n: a = n % 10 dsddr, n = dsddr + a*a, n // 10 return -(dr + dsddr), out return sorted(set(arr1).intersection(arr2), key=f)

答案7:

sorted_comm_by_digs=lambda a,b:sorted(set(a)&set(b),key=lambda n:(-sum(map(int,str(n)))-sum(int(d)**2for d in str(sum(map(int,str(n))))),n))

答案8:

def H(Q): R,S=0,Q while S:R,S=R+S%10,S//10 S=R while S:R,S=R+(S%10)**2,S//10 return-R,Q from collections import* sorted_comm_by_digs=lambda Q,S:sorted(Counter(Q)&Counter(S),key=H)

答案9:

def sorted_comm_by_digs(a, b): f = lambda x: sum(map(int, str(x))) g = lambda x: x + sum(map(lambda y: int(y)**2, str(x))) return sorted(set(a) & set(b), key=lambda x: (g(f(x)), -x), reverse=True)

答案10:

def f(n): dr = sum(map(int, str(n))) deep = sum(d*d for d in map(int, str(dr))) return (-dr-deep, n) def sorted_comm_by_digs(arr1, arr2): return [v for _,v in sorted(map(f, set(arr1) & set(arr2)))]

景越Python基础训练营QQ群

欢迎各位同学加群讨论,一起学习,共同成长!

最新回复(0)