Re: Цікаві задачі
неаргументовано. є як мінімум 1 рішення, яке не програє ані по часу, ані по пам'яті. до того ж коротше
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Алгоритми та структури даних, технології → Цікаві задачі
неаргументовано. є як мінімум 1 рішення, яке не програє ані по часу, ані по пам'яті. до того ж коротше
Реально? Без уточнення формату, в якому задаються числа, і спроможностей обчислювальної системи? В будь-якому разі виграє, навіть якщо числа представлені десятковими рядками?
Якщо (&) :
процесор не вміє ділити числа
число ціле (зі знаком або без) і вміщається в 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)