2011-10-07 61 views
0

这对我来说很棘手:棘手的条件数学

我有四组8个LED。 A是1-8,B是9-16,C是17-24,并且D是25-32。

我试图找出如何写一个有条件的地方

i = 0 //this would be the LED number 

loop { 
i = //gets updated here 
if (i is in the first group) { 
    // do stuff 
} else { 
    //do other stuff 
} 
} 

基本上,我需要检查的LED前它被关闭,看它是否是在同一组作为新的LED正在点燃。

如果它在同一组中,它将被关闭,如果它不在同一组中,则需要保持关闭。

因此,数学方面,我需要看看数字是否在一定范围之间。我想我可以只写

if (i >=8) 
... 
if(i <=9 && >=16) 
... 

等四个版本,但是这似乎并不很整洁......

+0

36?不是32? –

回答

5

使用整数除法。从两个值中减1,然后整数除以8.如果结果相同,则两个LED都在同一个库中。

def samebank(i, j): 
    return ((i - 1) // 8) == ((j - 1) // 8) 
+0

完善。谢谢! – Joel

0
GetLedGroup(i) 
    string[] arrLed = {"A","B","C","D"}; 
    return arrLed[Math.floor(i/8)-1];