Сложная оптимизация кода / алгоритма (например, упрощение) - PullRequest
2 голосов
/ 18 марта 2011

Как этот код может быть упрощен?

<code>
  if      (x == 0) x = 1;
  else if (x == 1) x = 0;
  else if (x == 2) x = 3;
  else if (x == 3) x = 2;

Ответы [ 15 ]

1 голос
/ 18 марта 2011
x^=1;

, если x не может быть меньше 0 или больше 3, что не указано в спецификации проблемы.

1 голос
/ 18 марта 2011

Код будет более читабельным с оператором switch:

switch(x) {
case 0: x=1: break;
case 1: x=0: break;
case 2: x=3: break;
case 3: x=2; break;
}

Однако, это всего лишь читаемость кода , а не алгоритмика и не оптимизация.

1 голос
/ 18 марта 2011

Общий подход для обработки простых данных, подобных этому, заключается в использовании оператора switch.

0 голосов
/ 24 ноября 2015

Лучший способ сделать это ...

if(x % 2 == 0){
  x = +x;
}else{
  x = -x;
}
0 голосов
/ 18 марта 2011

Возможно использование операторов switch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...