Не могу понять, почему в принципе в вс12 может не компилироваться такой код: bind(less(), _1, _2) подходит под тип function<bool(int,int)>> а less() — нет?
Объединение циклов — в самой постановке задачи. Не могу целиком привести условие, хотя бы из-за того, что слишком долго. Семантически там нужно сделать одно и то же действие N=2 раза в разном порядке. К тому же если N не 2 а 1000, то просто функция уже не прокатит
Задача 9: пусть 2а — сторона квадрата, из O опускаем высоты х, у, (2а-х) и (2а-у).
Дальше система уравнений (площади 4-угольников из площадей 3-угольников):
ax/2 + ay/2 = 20,
ay/2 + a(2a-x)/2 = 16
ax/2 + a(2a-y)/2 = 32
Задача 7: даже без перемешивания ответ будет тем же. Если в 1-м бакале 1 воды и 0 вина, во втором — 1 вина и 0 воды, то после всех операций в 1-м будет (1-х) воды и х вина, во 2-м — (1-х) вина и х воды
С моей точки зрения код с do-while — это не головоломка.
Мне, например, в вашем варианте не нравится магическое число 255 и выполнение if на каждой итерации цикла (я не имею в виду производительность). Все дело вкуса. Согласен, что вы предложили корректное решение. Но я бы в продакшн выпустил вариант do-while, также в отсутствии доп. условий. К слову, я встречал Code Style Guide, запрещающий использование do.
задача демонстрирует знание циклов, подробности будут завтра
практическую проблему я упомянул не потому, что без приведенной задачи нельзя было решить эту проблему, а просто для того, чтобы уточнить, что задача не выдумывалась специально для собеседований
Не могу понять, почему в принципе в вс12 может не компилироваться такой код: bind(less(), _1, _2) подходит под тип function<bool(int,int)>> а less() — нет?
Еще короче:
А вообще очень хорошая идея с function, я не достаточно знаю с++11, чтобы самому догадаться, спасибо
Дальше система уравнений (площади 4-угольников из площадей 3-угольников):
ax/2 + ay/2 = 20,
ay/2 + a(2a-x)/2 = 16
ax/2 + a(2a-y)/2 = 32
ax/2 -a(2a-x)/2 = 4
ay/2 -a(2a-y)/2 = -12
ax/2 + ay/2 = 20
ax = a^2 + 4
ay = a^2 — 12
a^2 + 2 — 6 = 20
Искомое: а(2а-х)/2 + а(2а-у)/2 = 2а^2 — ax/2 — ay/2 = a^2 — 2 + 6 = 24 — 2 + 6 = 28
Мне, например, в вашем варианте не нравится магическое число 255 и выполнение if на каждой итерации цикла (я не имею в виду производительность). Все дело вкуса. Согласен, что вы предложили корректное решение. Но я бы в продакшн выпустил вариант do-while, также в отсутствии доп. условий. К слову, я встречал Code Style Guide, запрещающий использование do.
Правда я его модифицировал
Ввожу дополнительное условие в UPD
практическую проблему я упомянул не потому, что без приведенной задачи нельзя было решить эту проблему, а просто для того, чтобы уточнить, что задача не выдумывалась специально для собеседований