如何编写有效的可分性测试?

时间:2016-01-12 18:57:32

标签: python list python-2.7

Python Koans中的问题指定“如果列表xs中的任何数字可被3整除,则返回True。否则,如果列表为空,则返回False。”

到目前为止,我已经写过return any(x % 3 == 0 for x in xs),但这只能提供2/3星。

1 个答案:

答案 0 :(得分:0)

对于大数字,您的实施效率不高。也许它不够快?

对于除数的特殊情况,您可以计算您正在测试的数字中的数字总和。如果总和可以被3整除,那么你开始使用的数字也是如此。

例如

4789 => 4 + 7 + 8 + 9 = 28 => 2 + 8 = 10 => 1 + 0 = 1(不能被3整除)

4788 => 4 + 7 + 8 + 8 = 27 => 2 + 7 = 9(9可被3整除,因此也是4788)