我正在使用3个LED,并且我想编写一些简洁的代码来循环遍历3的所有不同组合。
i.e. 0=Red led, 1=blue, 2=green
000 = Red
001 = 011 = ... = 110 = Red + Blue
002
012
111
112
222
只有7种组合,但我坚持使用下面的伪代码
allcombos()
for(i=0 to 2)
for(j=i to 2)
turnOn(i,j)
delay
turnOff
delay
turnOn(0,1,2)
delay
turnOff
delay
for循环处理所有2个LED组合而不重复,但我必须为所有3个添加一个特殊情况。
我一直在查看代码,并认为他们可能是一种方法,我可以嵌套另一个循环来捕捉这种情况(我意识到没有什么可以从中获得)。更多的运动比什么都重要。或者也许有一种递归方式来做到这一点?
答案 0 :(得分:3)
我会推荐一种不同的方法(C-ish伪代码):
for (i = 0; i < 8; ++i)
{ if (i & 1)
turnOn(0)
if (i & 2)
turnOn(1)
if (i & 4)
turnOn(2)
delay
turnOff
}