Форум программистов, компьютерный форум CyberForum.ru

Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки - C++

Восстановить пароль Регистрация
 
Алекс090394
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 35
15.02.2013, 09:35     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки #1
4. Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки. Используя эту функцию, проверьте, являются ли степенями двойки числа 12, 8, 500, 1024.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2013, 09:35     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки
Посмотрите здесь:

C++ While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести true, если не является — вывести false.
C++ Составить функцию, которая, получив целое число определяет, уменьшается ли оно в целое число раз
C++ Создайте функцию, которая принимает в качестве аргумента целое число и возвращает число Люка с таким номером
C++ Создайте логическую функцию, которая принимает в качестве аргумента число и проверяет, является ли оно автоморфным
Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно простым C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,121
Записей в блоге: 3
15.02.2013, 10:50     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки #2
C++
1
2
3
4
bool IsPrime(const int A)
{
    return (A>0)&&((A&(A-1))==0);
}
Использование сами прикрутите.
Алекс090394
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 35
15.02.2013, 17:42  [ТС]     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки #3
можно поподробнее
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,121
Записей в блоге: 3
15.02.2013, 18:05     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки #4
Цитата Сообщение от Алекс090394 Посмотреть сообщение
можно поподробнее
Что конкретно?
looo
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 3
15.02.2013, 22:31     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки #5
поясните пожалуйста вот этот момент -
(A&(A-1))
что тут происходит?
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,121
Записей в блоге: 3
15.02.2013, 23:11     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки #6
Выполняется побитовое И для числа и "предыдущего" числа. Зачем и для чего надо объяснять?
looo
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 3
15.02.2013, 23:37     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки #7
не понимаю почему один амперсанд, это тоже что и &&?
т.е. непонятно, что происходит в функции после &&, она вернёт истину если А>0 "И" а дальше непонятно
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
15.02.2013, 23:43     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки #8
Цитата Сообщение от looo Посмотреть сообщение
не понимаю почему один амперсанд, это тоже что и &&?
т.е. непонятно, что происходит в функции после &&, она вернёт истину если А>0 "И" а дальше непонятно
Почитайте про побитовые операции
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,121
Записей в блоге: 3
15.02.2013, 23:50     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки #9
looo,& - битовое И. && - логическое.
looo
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 3
16.02.2013, 00:54     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки #10
Я въехал.
функция вернёт true, если число положительное и если при побитовом умножении числа и предыдущего числа будет ноль, что возможно только если это число - степень двойки.
Всем спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2013, 01:45     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки
Еще ссылки по теме:

C++ Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно простым.
C++ Создать функцию, которая принимает в качестве аргумента ссылку на string, и преобразует все буквы в верхний регистр
Вводится число. Определить, является ли оно степенью двойки. C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
16.02.2013, 01:45     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки #11
По сути и так бы сошло:
C++
1
2
3
4
inline bool isp(const int& x)
{
      return ((floor(log(x)/log(2)) == (log(x)/log(2))));
}
В студии без проблем проходит, но mingw вот отказывается.
Видимо, из-за округления.
http://liveworkspace.org/code/36fJcg$5
Yandex
Объявления
16.02.2013, 01:45     Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки
Ответ Создать тему
Опции темы

Текущее время: 16:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru