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

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

Войти
Регистрация
Восстановить пароль
 
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
#1

Является ли число суммой степеней двойки? - C++

12.12.2012, 17:03. Просмотров 497. Ответов 6
Метки нет (Все метки)

помогите написать такую функцию, чтоб проверяла число на сумму степеней двойки(без повторений этих степеней)

например число 30 устраивает (2+4+8+16) а 34 и 33 и 32 и тп уже не устраивает уже не устраивает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2012, 17:03     Является ли число суммой степеней двойки?
Посмотрите здесь:

C++ Определить, является ли данное число степенью двойки
C++ Разложить число на сумму степеней двойки
Вводится число. Определить, является ли оно степенью двойки. C++
C++ Является ли число степенью двойки?
C++ Является ли число степенью двойки
C++ Является ли заданное натуральное число степенью двойки
Является ли число степенью двойки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
12.12.2012, 17:23     Является ли число суммой степеней двойки? #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
using namespace std;
 
int main() {
    int a;
    cin >> a;
 
    int it = 2;
    int summ = it;
 
    while(summ <= a) {
        it *= 2;
        summ += it;
 
        if(a == summ) {
            cout << "YES";
            return 0;
        }
 
    }
 
    cout << "NO";
 
    return 0;
}
CheshireCat
Эксперт С++
2910 / 1238 / 78
Регистрация: 27.05.2008
Сообщений: 3,322
12.12.2012, 17:27     Является ли число суммой степеней двойки? #3
ЛЮБОЕ целое число является суммой степеней двойки без повторений.
33 = 2^5 + 2^0.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12538 / 7100 / 797
Регистрация: 27.09.2012
Сообщений: 17,521
Записей в блоге: 2
Завершенные тесты: 1
12.12.2012, 17:30     Является ли число суммой степеней двойки? #4
представьте необходимое число в двоичной системе - ответ станет очевиден.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
12.12.2012, 17:31     Является ли число суммой степеней двойки? #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool function(int n) {
   int it = 2;
    int summ = it;
 
    while(summ <= n) {
        it *= 2;
        summ += it;
 
        if(n == summ) {
            return true;
        }
 
    }
 
    return false;
}
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
12.12.2012, 18:52  [ТС]     Является ли число суммой степеней двойки? #6
Цитата Сообщение от CheshireCat Посмотреть сообщение
ЛЮБОЕ целое число является суммой степеней двойки без повторений.
33 = 2^5 + 2^0.
забыл написать, что 2^0 не учитывать

sovaz1997, спасибо! работает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2012, 19:24     Является ли число суммой степеней двойки?
Еще ссылки по теме:

C++ Определить, является ли число степенью двойки (циклы)
C++ Является ли натуральное число точной степенью двойки
C++ Проверить, является ли число степенью двойки
Определить, является ли число целой степенью двойки C++
C++ Определить, является ли число степенью двойки

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12538 / 7100 / 797
Регистрация: 27.09.2012
Сообщений: 17,521
Записей в блоге: 2
Завершенные тесты: 1
12.12.2012, 19:24     Является ли число суммой степеней двойки? #7
Цитата Сообщение от Tiva Посмотреть сообщение
забыл написать, что 2^0 не учитывать
тогда только четные числа можно представить, ибо четное+четное=четное
Yandex
Объявления
12.12.2012, 19:24     Является ли число суммой степеней двойки?
Ответ Создать тему
Опции темы

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