Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Алекс090394
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 35
#1

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

15.02.2013, 09:35. Просмотров 905. Ответов 10
Метки нет (Все метки)

4. Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки. Используя эту функцию, проверьте, являются ли степенями двойки числа 12, 8, 500, 1024.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2013, 09:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки (C++):

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

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

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

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

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

Дано целое число N (> 0). Проверить,является ли оно степенью числа 3. С++ - C++
Дано целое число N (> 0). Если оно является степенью числа 3, то вывести true, если не является — вывести false.

10
HighPredator
5545 / 1858 / 346
Регистрация: 10.12.2010
Сообщений: 5,444
Записей в блоге: 2
15.02.2013, 10:50 #2
C++
1
2
3
4
bool IsPrime(const int A)
{
    return (A>0)&&((A&(A-1))==0);
}
Использование сами прикрутите.
1
Алекс090394
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 35
15.02.2013, 17:42  [ТС] #3
можно поподробнее
0
HighPredator
5545 / 1858 / 346
Регистрация: 10.12.2010
Сообщений: 5,444
Записей в блоге: 2
15.02.2013, 18:05 #4
Цитата Сообщение от Алекс090394 Посмотреть сообщение
можно поподробнее
Что конкретно?
0
looo
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 3
15.02.2013, 22:31 #5
поясните пожалуйста вот этот момент -
(A&(A-1))
что тут происходит?
0
HighPredator
5545 / 1858 / 346
Регистрация: 10.12.2010
Сообщений: 5,444
Записей в блоге: 2
15.02.2013, 23:11 #6
Выполняется побитовое И для числа и "предыдущего" числа. Зачем и для чего надо объяснять?
0
looo
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 3
15.02.2013, 23:37 #7
не понимаю почему один амперсанд, это тоже что и &&?
т.е. непонятно, что происходит в функции после &&, она вернёт истину если А>0 "И" а дальше непонятно
0
vua72
416 / 416 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
15.02.2013, 23:43 #8
Цитата Сообщение от looo Посмотреть сообщение
не понимаю почему один амперсанд, это тоже что и &&?
т.е. непонятно, что происходит в функции после &&, она вернёт истину если А>0 "И" а дальше непонятно
Почитайте про побитовые операции
1
HighPredator
5545 / 1858 / 346
Регистрация: 10.12.2010
Сообщений: 5,444
Записей в блоге: 2
15.02.2013, 23:50 #9
looo,& - битовое И. && - логическое.
1
looo
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 3
16.02.2013, 00:54 #10
Я въехал.
функция вернёт true, если число положительное и если при побитовом умножении числа и предыдущего числа будет ноль, что возможно только если это число - степень двойки.
Всем спасибо!
0
BumerangSP
4287 / 1409 / 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
0
16.02.2013, 01:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2013, 01:45
Привет! Вот еще темы с ответами:

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

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

While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести true, если не является — вывести false. - C++
While. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести true, если не является — вывести false.

Дано целое число N(>0). Если оно является степенью числа 3, то вывести TRUE, если не является-вывести FALSE. - C++
Дано целое число N(>0). Если оно является степенью числа 3, то вывести TRUE, если не является-вывести FALSE. Я не могу записать её с...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.