求计算区间{n1,n2}内偶数个数的最简单行代码(覆盖四种奇偶区间)
解决方案
可以用一个通用公式直接覆盖所有四种区间情况,计算闭区间 [a, b] 内的偶数个数:
偶数个数 = ((b // 2) - ((a - 1) // 2))
四种情况验证:
- 奇-奇:比如区间
[3,7],偶数为4、6,共2个。代入公式:7//2=3,(3-1)//2=1,3-1=2,结果正确。 - 奇-偶:比如区间
[3,6],偶数为4、6,共2个。公式计算:6//2=3,(3-1)//2=1,3-1=2,结果正确。 - 偶-奇:比如区间
[2,5],偶数为2、4,共2个。公式计算:5//2=2,(2-1)//2=0,2-0=2,结果正确。 - 偶-偶:比如区间
[2,6],偶数为2、4、6,共3个。公式计算:6//2=3,(2-1)//2=0,3-0=3,结果正确。
公式原理
b//2代表从0到b的偶数总个数(若b为偶数则包含b)(a-1)//2代表从0到a-1的偶数总个数- 两者差值即为区间
[a,b]内的偶数个数,无需额外分情况判断,直接覆盖所有端点奇偶组合。
内容的提问来源于stack exchange,提问作者Tony Theo
相关产品推荐
相关产品推荐

