|
12.01.2022, 11:34 | #1 |
Участник
|
[a, b] = [b, a]
Хотя задача, если копать глубже, решения не имеет. Можно говорить только о том, что "без использования промежуточной переменной" именно на конкретном языке. Более того, без уточнения типов даже задачу ставить нет смысла. В том же обмене по контейнеру внутри куча всего происходит. Да и на ассемблере регистры вроде тоже можно принять как переменные (области памяти процессора) |
|
|
За это сообщение автора поблагодарили: EVGL (5), Lemming (10), sukhanchik (13). |
12.01.2022, 11:40 | #2 |
Участник
|
|
|
12.01.2022, 11:42 | #3 |
Banned
|
Цитата:
Сообщение от Raven Melancholic
[a, b] = [b, a]
Хотя задача, если копать глубже, решения не имеет. Можно говорить только о том, что "без использования промежуточной переменной" именно на конкретном языке. Более того, без уточнения типов даже задачу ставить нет смысла. В том же обмене по контейнеру внутри куча всего происходит. Да и на ассемблере регистры вроде тоже можно принять как переменные (области памяти процессора) https://en.wikipedia.org/wiki/Swap_(...er_programming) |
|
12.01.2022, 12:32 | #4 |
Участник
|
Если оговорены типы то можно без дополнительных переменных.
X++: static void swapExample(Args _args) { container swap(int _a, int _b) { int a = _a; int b = _b; ; // a == _a; b == _b; a = a + b; // a == _a + _b; b == _b; b = b - a; // a == _a + _b; b == -_a; a = a + b; // a == _b; b == -_a; b = -b; // a == _b; b == _a; info(con2Str([_a, _b, " ", a, b])); return [a, b]; } ; swap(1, 2); swap(1, 20); } |
|
|
За это сообщение автора поблагодарили: sukhanchik (15). |
12.01.2022, 12:33 | #5 |
Участник
|
|
|
20.01.2022, 16:10 | #6 |
Участник
|
Цитата:
Не вполне корректная. 1. Она годится чтобы оценить гибкость ума и "соображалистость" студента, которого берут как стажера. 2. Вам же как я понимаю нужен чел с неким опытом и лучше в области ERP систем. - Там совсем другие шаблоны мысли. И главное это опыт и знание бизнеспроцессов и жизненных ситуация по применению ERP систем. Эта задачка никак тут не помогает. Думаю что ее неплохо использовать если хочешь завалить чела на собеседовании или сбить с него самоуверенность. Ну такой аналог отмазки "Вы не проходите по требованиям нашей службы безопасности." |
|
|
За это сообщение автора поблагодарили: Lemming (13), GEP442 (1). |
12.01.2022, 12:34 | #7 |
Участник
|
Цитата:
Сообщение от Logger
X++: static void swapExample(Args _args) { container swap(int _a, int _b) { int a = _a; int b = _b; ; // a == _a; b == _b; a = a + b; // a == _a + _b; b == _b; b = b - a; // a == _a + _b; b == -_a; a = a + b; // a == _b; b == -_a; b = -b; // a == _b; b == _a; info(con2Str([_a, _b, " ", a, b])); return [a, b]; } ; swap(1, 2); swap(1, 20); } |
|
31.01.2022, 16:05 | #8 |
Участник
|
Кстати, если ничего не путаю - то каноническое решение на шаг короче будет -
X++: static void swapExample(Args _args) { container swap(int _a, int _b) { int a = _a; int b = _b; ; // a == _a; b == _b; a = a + b; // a == _a + _b; b == _b; b = a - b; // a == _a + _b; b == _a; a = a - b; // a == _b; b == _a; info(con2Str([_a, _b, " ", a, b])); return [a, b]; } ; swap(1, 2); swap(1, 20); }
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет. |
|
|
За это сообщение автора поблагодарили: Logger (1). |
01.02.2022, 11:50 | #9 |
Участник
|
|
|
|
|