2011-10-07 58 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];