代码开发:求重复循环计数变量的计算公式
实现循环计数:1 1 1 2 2 2 3 3 3 1 1 1...的计算公式
嘿,这个循环计数需求其实很好解决,用整数除法+取模运算就能写出简洁的公式,不用复杂的条件判断!
核心公式(计数变量n从1开始)
((n - 1) // 3) % 3 + 1
公式拆解解释
咱们一步步看为啥这个公式能满足你的需求:
n-1:把从1开始的计数转成从0开始的索引(比如第1次变成0,第3次变成2,第4次变成3),方便后续分组// 3:每3次归为一组,得到组号(0对应前3次,1对应中间3次,2对应后3次,3对应下一轮前3次,以此类推)% 3:让组号在0、1、2之间循环,确保超过3的组号回到0+1:把0-2的组号转成你需要的1-3的计数结果
验证示例
咱们代入几个值测试下:
- n=1 → ((1-1)//3)%3+1 = 0%3+1 = 1
- n=3 → ((3-1)//3)%3+1 = 0%3+1 = 1
- n=4 → ((4-1)//3)%3+1 = 1%3+1 = 2
- n=6 → ((6-1)//3)%3+1 = 1%3+1 = 2
- n=7 → ((7-1)//3)%3+1 = 2%3+1 = 3
- n=9 → ((9-1)//3)%3+1 = 2%3+1 = 3
- n=10 → ((10-1)//3)%3+1 = 3%3+1 = 1
完全符合你要的循环规律!
代码示例(Python)
# 打印前12次的计数结果 for n in range(1, 13): count = ((n - 1) // 3) % 3 + 1 print(count, end=' ') # 输出:1 1 1 2 2 2 3 3 3 1 1 1
小补充:如果计数变量从0开始
要是你的计数是从0开始的(比如数组下标),公式可以简化成:
(n // 3) % 3 + 1
比如n=0→0//3=0→0%3+1=1,n=3→1%3+1=2,效果一样~
内容的提问来源于stack exchange,提问作者h8n2
相关产品推荐
相关产品推荐

