函数,找到所有数字的总和,直至(包括(n是x或y的倍数。
我尝试将返回语句放在不同的凹痕处,仍然没有希望
def multipleSum(N,x,y):
z=0
a=0
for i in range(0,N+1):
if i%x==0:
z=z+i
elif i%y==0:
a=a+i
else:
s=z+a
return s
测试用例:
多重(10,2,3(== 42
预期结果为 42 ,实际结果为 15
代码:
def multipleSum(N,x,y):
total=0
for i in range(N+1): # No need to mention 0(zero), as range starts from '0'
if i % x == 0 or i % y == 0: # No need to use if and elif, better to use 'or' instead
total+=i
return total
另一种方法:
def multipleSum(N,x,y):
return sum(map(lambda v: v if v%x==0 or v%y==0 else 0, range(N+1)))
输出:
>>> multipleSum(10, 2, 3)
42