Python如何不使用reversed函数输出区间[a,b]内降序排列的偶数
需求说明
输出区间[a, b]内按降序排列的所有偶数。
输入输出示例
输入样例 #1:
2 7
输出样例 #1:
6 4 2
原实现说明
原有代码通过reversed()函数对升序生成的偶数序列做反转,现在需要不使用reversed()实现相同效果。
解决方案
核心思路是直接构造从区间内符合要求的最大偶数开始、步长为-2的遍历序列,无需额外反转操作,性能更高也更直观。
实现代码如下:
a,b = map(int,input().split()) # 计算小于b的最大偶数作为遍历起始值 start = (b - 1) - ((b - 1) % 2) # 步长设为-2逆序遍历,结束边界设为a-1保证能取到等于a的偶数 for i in range(start, a - 1, -2): print(i, end=" ")
如果接受小范围区间下占用少量额外内存的写法,也可以用列表切片反转实现,代码更简洁:
a,b = map(int,input().split()) for i in list(range(a,b,2))[::-1]: print(i, end=" ")
内容的提问来源于stack exchange,提问作者Samir Zeynal
相关产品推荐
相关产品推荐

