如果我们列出10以下的所有自然数,它们是3或5的倍数,我们得到3、5、6和9。这些倍数之和是23
完成该解决方案,使其返回传入数字以下所有3或5的倍数之和
注意:如果数字是3和5的倍数,则只计算一次。此外,如果数字为负数,则返回0(对于具有负数的语言)
def solution(number):
sum = 0
if(number <= 0):
return 0
else:
for i in range(1,number+1):
if( i % 3 == 0 or i % 5 == 0 and i % 15 != 0 ):
sum += i
return sum
代码战中有105个测试用例用于此挑战,其中55个通过,50个未通过。如何改进代码
附言:我看不出哪些案例通过了,哪些案例没有通过
第二点:伙计们,当我删除I%15!=0
你不需要i%15!=0条件,因为之前的条件已经满足,所以永远不会对其进行测试,范围也应该是范围(1,数字),因为请求低于传入的数字(例如21和22应该给出相同的答案)
省略最后一个测试(
i % 15 != 0
),条件变为i % 3 == 0 or i % 5 == 0
,这就是问题所要求的,而且问题说below
传入的数字,因此从range
中排除number
:看起来你不是在数15的倍数吧?我可能错了,但你好像说,如果我可以被(3或5)整除,但不能被15整除,那么它就算数了
相关问题 更多 >
编程相关推荐