棘手的条件数学

时间:2011-10-07 06:00:33

标签: math conditional

这对我来说很棘手:

我有四组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)
...

等,但这似乎不是很整洁......

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

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