"Искусство программирования" (задача 1)

(1/8) > >>

vimmax:
Вопрос №1: Написать подпрограмму, проверяющую, является ли число степенью 2 (т.е. числа 2=21, 4=22, 8=23, 16=24 и т.д.).
Условия:
1. Реализацию этого алгоритма можно предложить на любом языке программирования. Алгоритм должен выдавать Да/Нет (т.е 0/1, True/False кому как удобнее). Мой ответ на ANSI С.
2. Подпрограмма должна быть оптимизирована по времени (т.е. минимальное время выполнения).
3. Время проверки НЕ ДОЛЖНО зависеть от типа проверяемой переменной (byte, short, int, long int) и НЕ ДОЛЖНО зависеть от величины проверяемой переменной.

Примечания: ответы типа "у меня на P4-3000Mhz время одинаковое" - не принимаются.

grimgav:
Проверяем младший бит. Возвращаем true если мл. бит 0, иначе false.

Извините без программного кода. Главное алгоритм %)

vimmax:
grimgav - Ответ #1 -> твой алгоритм определяет четное число или нечетное. Число 6 по твоему алгоритму выдаст True, хотя оно не является степенью двойки.

grimgav:
Цитата: vimmax от Февраль 08, 2007, 02:03:23

grimgav - Ответ #1 -> твой алгоритм определяет четное число или нечетное. Число 6 по твоему алгоритму выдаст True, хотя оно не является степенью двойки.


Гыы %) shame on me )))

vimmax:
У кого-нибудь есть вообще какие-нибудь соображения на эту тему?

Навигация

[0] Главная страница сообщений

[#] Следующая страница