#math #conditional
#математика #условные операторы
Вопрос:
Это сложно для меня:
У меня есть четыре группы из 8 светодиодов. 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
}
}
В принципе, мне нужно проверить светодиод перед его выключением, чтобы увидеть, находится ли он в той же группе, что и новый светодиод, который загорается.
Если он находится в той же группе, он будет отключен, если он НЕ в той же группе, он должен оставаться включенным.
Итак, с математической точки зрения мне нужно посмотреть, находится ли число в определенном диапазоне. Думаю, я мог бы просто написать четыре версии
if (i >=8)
...
if(i <=9 amp;amp; >=16)
...
и т.д., Но это кажется не очень аккуратным…
Ответ №1:
Используйте целочисленное деление. Вычтите 1 из обоих значений, затем целое число разделите на 8. Если это один и тот же результат, то оба светодиода находятся в одном банке.
def samebank(i, j):
return ((i - 1) // 8) == ((j - 1) // 8)
Ответ №2:
GetLedGroup(i)
string[] arrLed = {"A","B","C","D"};
return arrLed[Math.floor(i/8)-1];