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

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

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

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

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

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

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

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

Является ли число степенью двойки? - C++
Вводится число. Напечатать YES, если оно является степенью двойки, NO - иначе.

Является ли число степенью двойки - C++
Условие: Входные данные Входной файл INPUT.TXT содержит единственное целое число N, не превосходящее 10000 по абсолютной величине. ...

Является ли число степенью двойки - C++
Дано натуральное число n. Определите, является ли оно степенью числа 2, и выведете слово YES если является,и выведите слово NO если не...

Проверить, является ли число степенью двойки - C++
Бьюсь с самого утра все никак. Условия Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или...

Определить, является ли число степенью двойки - C++
Такая проблема: в проге мне нужно задать количество чисел которые я введу (т.е создать массив под них), потом ввести числа и оно должно мне...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
sovaz1997
CEO SOVAZ Corp.
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;
}
1
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,370
12.12.2012, 17:27 #3
ЛЮБОЕ целое число является суммой степеней двойки без повторений.
33 = 2^5 + 2^0.
0
Croessmah
Эксперт CЭксперт С++
13232 / 7504 / 846
Регистрация: 27.09.2012
Сообщений: 18,433
Записей в блоге: 3
Завершенные тесты: 1
12.12.2012, 17:30 #4
представьте необходимое число в двоичной системе - ответ станет очевиден.
0
sovaz1997
CEO SOVAZ Corp.
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;
}
1
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
12.12.2012, 18:52  [ТС] #6
Цитата Сообщение от CheshireCat Посмотреть сообщение
ЛЮБОЕ целое число является суммой степеней двойки без повторений.
33 = 2^5 + 2^0.
забыл написать, что 2^0 не учитывать

sovaz1997, спасибо! работает
1
Croessmah
Эксперт CЭксперт С++
13232 / 7504 / 846
Регистрация: 27.09.2012
Сообщений: 18,433
Записей в блоге: 3
Завершенные тесты: 1
12.12.2012, 19:24 #7
Цитата Сообщение от Tiva Посмотреть сообщение
забыл написать, что 2^0 не учитывать
тогда только четные числа можно представить, ибо четное+четное=четное
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2012, 19:24
Привет! Вот еще темы с ответами:

Определить, является ли число степенью двойки - C++
По заданному положительному числу n &lt; 2^64 определить, является ли оно степенью двойки. Решение должно иметь сложность O(1). 1 ...

Определить, является ли данное число степенью двойки - C++
Является ли данное число степенью двойки? Формат входных данных Вводится число. Формат выходных данных Напечатать YES, если оно...

Является ли натуральное число точной степенью двойки - C++
Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Формат...

Определить, является ли число степенью двойки (циклы) - C++
Вводится число. Определить, является ли оно степенью двойки. ( с помощью цикла) Думала примерно так, но знаю не правильно ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.12.2012, 19:24
Ответ Создать тему
Опции темы

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