hogwarts
(霍格沃兹测试学院官方)
2022 年6 月 10 日 02:22
1
给定一个初始数字和一个函数对象列表,我们的任务就是,将初始值依次传入函数中,后续的函数输入正是前面函数的输出。请编写一个函数,计算出最终的结果值。
【示例】
def add10(x): return x + 10
def mul30(x): return x * 30
输入:50, [add10, mul30]
输出:1800
解释:首先将50传入add10函数,50+10=60
;再将60传入mul30
函数,得到30*60=1800
。
题目难度:简单
题目来源:codewars-Chain me
def solution(n, funcs: list)-> int:
# your code here
assert solution(50, [add10, mul30]) == 1800
assert solution(50, [mul30]) == 1500
assert solution(42, []) == 42
joyoko
(徐子宇)
2022 年6 月 10 日 04:28
2
def add10(x): return x + 10
def mul30(x): return x * 30
def solution(n, funcs: list) -> int:
# your code here
if (l := len(funcs)) > 0:
return funcs[l-1](solution(n, funcs[:l-1]))
else:
return n
assert solution(50, [add10, mul30]) == 1800
assert solution(50, [mul30]) == 1500
assert solution(42, []) == 42
1 个赞
def solution(n, funcs: list)-> int:
if funcs is None:
return n
for i in funcs:
n = i(n)
return n
assert solution(50, [add10, mul30]) == 1800
assert solution(50, [mul30]) == 1500
assert solution(42, []) == 42
1 个赞
def solution(n, funcs: list) -> int:
if len(funcs):
for fun in funcs:
n = fun(n)
return n
return n
assert solution(50, [add10, mul30]) == 1800
assert solution(50, [mul30]) == 1500
assert solution(42, ) == 42
1 个赞
def solution(n, funcs: list)-> int:
for func in funcs:
n=func (n)
return n
def solution(n, funcs: list)-> int:
if funcs==[]:
return n
for i in funcs:
n=i(n)
return n
def add10(x): return x + 10
def mul30(x): return x * 30
def solution(n, funcs: list) -> int:
# your code here
for i in funcs:
n = i(n)
return n
assert solution(50, [add10, mul30]) == 1800
assert solution(50, [mul30]) == 1500
assert solution(42, []) == 42
def add10(x):
return x + 10
def mul30(x):
return x * 30
def solution(n, funcs: list) -> int:
for func in funcs:
n = func(n)
return n
assert solution(50, [add10, mul30]) == 1800
assert solution(50, [mul30]) == 1500
assert solution(42, []) == 42