381

Re: Цікаві задачі

неаргументовано.  :-X є як мінімум 1 рішення, яке не програє ані по часу, ані по пам'яті. до того ж коротше

382

Re: Цікаві задачі

Реально? Без уточнення формату, в якому задаються числа, і спроможностей обчислювальної системи? В будь-якому разі виграє, навіть якщо числа представлені десятковими рядками?

383

Re: Цікаві задачі

справа не в форматі

384

Re: Цікаві задачі

Якщо (&) :

  • процесор не вміє ділити числа

  • число ціле (зі знаком або без) і вміщається в 32 біти

  • треба число ділити на 100

то операцію діленя можна замінити на множеня+зміщеня :

int div_by_100(int value) {
    return (int)(((uint64_t)value * 0x028F5C29) >> 32);
}

Чому ?:

     1 / 100 == 42949673 / (2^32 + 4)
(2^32) / 100 ~= 42949673
              = 0x028F5C29 (hex)
Подякували: koala, P.Y.2