Поглядел на последовательности разных чисел, и у меня появилось такое предположение: количество единиц в двоичной записи чисел в последовательности всегда меньше либо равно двоичному логарифму начального числа. Если это верно, то довольно очевидно, что искать имеет смысл только циклы, а уходящих в бесконечность последовательностей не бывает.
Нет необходимости запоминать все числа последовательности, чтобы выявить в ней циклы, достаточно идти по ней двумя итераторами, но на одном из них делать шаг в два раза реже. При наличии цикла значения итераторов в какой-то момент времени обязательно совпадут.
Калькуляторы используют небольшой трюк: не показывают последние две-три цифры результата, округляя число при отображении. Если вычислить (1/3-0.333)*3, результат уже будет состоять из девяток.
В Норвегии всё то же самое по пунктам 1-6, только документы на ипотеку не нужно идти никуда подписывать, всё делается через почту. Более того, есть банки вообще без физических отделений, вся бумажная работа делается исключительно по почте. СМС-уведомления есть, но стоят приличных денег.
За два года жизни в Норвегии не встречал такого ни разу. Но добавлю, что тут ещё популярна система Vipps: можно легко и удобно переслать другому деньги по номеру телефона, можно попросить у друга денег, подтвердить оплату квитанции, разделить счёт на компанию, и всё это независимо от банка и без комиссий. Особенно это удобно, когда покупаешь что-нибудь по объявлению или на ярмарках у частных лиц без карточного терминала. За всё время наличные мне потребовались только в двух местах в виде десятикроновых монет для запирания шкафчиков в раздевалках, я даже не знаю как купюры выглядят, т.к. видел их только мельком в чужих руках.
Можно заменить release() на передачу куда-нибудь через std::move. Суть в том, что корректная операция для однократно вызываемой лямбды оказывается некорректной для многократно вызываемой, но разницы между ними в с++ нет в отличие от раста.
Но если вызвать эту лямбду только один раз, то всё ок. Ни один современный компилятор не выдаёт предупреждений на такой код, а раст предотвратил бы проблему в аналогичном коде.
Edit: это не так, нашёл опровержение.
Бьюсь об заклад, коллеги на Qt использовали QHash.