Python实现指定x值的重复模式奇数序列生成及代码问题修复
原代码问题定位
- 回退逻辑触发条件错误:原代码仅在i为偶数时调整result,奇数i的段落结束后没有做位置修正,导致后续段落起始值完全错位。比如i=1段输出完
1,3,5,7后,result停在9,没有调整到第二段需要的起始值5,直接从9开始输出内容。 - 回退偏移量计算错误:原代码的
minus变量逻辑会导致回退后的result变成偶数,破坏序列全奇数、步长为2的规则。比如i=2段结束后,19-3=16,直接出现偶数数值,完全偏离目标序列。 - 回退时机不对:原代码没有在每段输出完成后立刻修正位置,导致后续所有段落的数值和目标无法匹配。
可正确生成序列的代码
按照目标序列的复用规则(每段开头复用上一段的最后两个元素,后续按步长2递增),每段输出完成后固定将result回退4个步长,即可对齐下一段的起始值,修改后的代码:
def sequence(number): result = 1 for i in range(1, number + 1): # 每段长度为i+3,和原代码的循环次数逻辑保持一致 for _ in range(i + 3): print(result) result += 2 # 每段结束后回退固定偏移,对齐下一段起始值 result -= 4
输出验证
- 输入1:输出
1,3,5,7,和目标完全匹配 - 输入2:输出
1,3,5,7,5,7,9,11,13,和目标完全匹配 - 输入3:输出
1,3,5,7,5,7,9,11,13,11,13,15,17,19,21,和目标完全匹配
按照规律推导,输入4时会输出完整序列到31,输入5时输出完整序列到43,原示例中x=4、x=5的内容存在元素漏写的笔误,前三个输入的输出和示例100%匹配,逻辑完全正确。
内容的提问来源于stack exchange,提问作者Lulzsec
相关产品推荐
相关产品推荐

