Последовательность с шагом 3
- Войдите на сайт для отправки комментариев
Пнд, 12/05/2014 - 22:24
Подскажите с формулой для следующей последовательности:
при x=1: y=0,1,2
при x=2: y=0,1,2
при x=3: y=0,1,2
при x=4: y=3,4,5
при x=5: y=3,4,5
при x=6: y=3,4,5
при x=7: y=6,7 (8 необязательно)
при x=8: y=6,7 (8 необязательно)
Этот код дает почти правильный результат:
byte y;
void setup()
{
Serial.begin(9600);
for (byte x = 1; x < 9; x++)
{
Serial.print("x=");
Serial.print(x);
Serial.print(": y=");
for (byte i = 0; i < 3; i++)
{
y = 3*(x>3) + i;
Serial.print(y);
Serial.print(",");
}
Serial.println();
}
}
void loop()
{
}
во, если строку 12 заменить на
if (x < 7) y = 3*(x>3) + i; else y = 6*(x>3) + i;то вывод получается правильный.
Но это костыль какой-то, хочется изящности, т.е. одной универсальной формулы :)
Может быть так:
byte y; void setup() { Serial.begin(9600); for (byte x = 1; x < 9; x++) { Serial.print("x="); Serial.print(x); Serial.print(": y="); y=(x-1)/3; for (byte i = 0; i < 3; i++) { Serial.print(y++); Serial.print(","); } Serial.println(); } } void loop() { }