Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2011, 20:06   #1
qqaawwss
Новичок
Джуниор
 
Регистрация: 01.05.2011
Сообщений: 2
По умолчанию Функция Фенвика

Значением функции Фенвика для числа N называется максимальная степень двойки, на которую нацело делится число N. Дано число N. Определить для него значение функции Фенвика.
Пример
12 4

Циклы не использовать
qqaawwss вне форума Ответить с цитированием
Старый 01.05.2011, 22:04   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

используйте рекурсию
p51x вне форума Ответить с цитированием
Старый 03.05.2011, 20:40   #3
Greek9000
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 151
По умолчанию

Цитата:
Сообщение от qqaawwss Посмотреть сообщение
Циклы не использовать
В качестве замены рекурсии можно попробовать такойподход:

2^1 = 10(2)
2^2 = 100(2)
2^3 = 1000(2)
2^4 = 10000(2)
и т.д.
далее, 12 = 1100 - макс степень двойки - вторая. число равно четырём.
т.е., если я ничего не напутал, то значение ф-ии Фенвика для числа N равно 2 в степени равной кол-ву нулей в конце его двоичного представления.
Раз циклы использовать нельзя, то сдвиг вправо тоже не получится использовать. Следовательно - побитовые операции. Но вот какие - так сходу придумать не могу.
Но мне кажется, что для Int64 за 6 сравненй можно получить ответ.
Greek9000 вне форума Ответить с цитированием
Старый 04.05.2011, 08:36   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

С нулями это изначально понятно. Для инт64 надо проверить как минимум возможность наличия 63 нулей отдельно... и где здесь 6 сравнений?
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция Seferus Общие вопросы C/C++ 3 23.09.2010 02:08
функция loloverg Помощь студентам 0 18.05.2010 20:12
Функция Kloun1 Паскаль, Turbo Pascal, PascalABC.NET 5 24.01.2009 19:56
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50