Название: Искусство программирования - 11 Отправлено: Alder от Август 08, 2012, 05:43:11 Этот вопрос задавался на собеседованиях в Oracle. Сразу скажу - решения легко гуглятся, поэтому давайте будем честными и подумаем сами.
Итак: Как разделить число на 3 без использования операторов *, /, +, -, %? Достоверно правильного (с точки зрения Oracle) решения нет, поэтому эта викторина больше на красоту кода :) Название: Re: Искусство программирования - 11 Отправлено: LazarusLong от Август 08, 2012, 07:51:02 простейший вариант, который приходит в голову путем решения нехитрого уравнения
int x >> 2(log23) он бы работал, если бы операции сдвига работали с аргументами с плавающей точкой))) Хотя я не пробовал) может и работают) Название: Re: Искусство программирования - 11 Отправлено: Olorin от Август 09, 2012, 12:24:08 Alder, деление целочисленное или остаток тоже может быть?
Название: Re: Искусство программирования - 11 Отправлено: Alder от Август 09, 2012, 01:41:23 Alder, деление целочисленное или остаток тоже может быть? Обычное деление :) Не целочисленное.Название: Re: Искусство программирования - 11 Отправлено: LazarusLong от Август 09, 2012, 07:24:40 Блин, помню был алгоритм на основе сдвигов) Я его даже когда-то знал) руки чешутся загуглить, но пока не буду))
Название: Re: Искусство программирования - 11 Отправлено: Артем от Сентябрь 02, 2012, 03:24:36 Alder, оглашай ответ :)
Название: Re: Искусство программирования - 11 Отправлено: Olorin от Сентябрь 05, 2012, 10:13:51 Угу, не томи, оглашай уже )
Название: Re: Искусство программирования - 11 Отправлено: Alder от Сентябрь 05, 2012, 01:31:22 Жаль, что никто не предложил больше вариантов.
Все ответы можно почитать здесь - http://stackoverflow.com/questions/11694546/divide-a-number-by-3-without-using-operators Название: Re: Искусство программирования - 11 Отправлено: Zarkon от Сентябрь 07, 2012, 05:11:17 мдя. я даже с ответом нихера не врубил
|