Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/75: Рейтинг темы: голосов - 75, средняя оценка - 4.87
 Аватар для Vanish_2048
0 / 0 / 0
Регистрация: 26.02.2016
Сообщений: 27

Точная степень двойки

02.05.2018, 18:26. Показов 14542. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал прогу. Как сделать, чтобы при вводе числа не являющейся точной степенью двойки, прога не выводила степень? Вот задание: Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Операцией возведения в степень пользоваться нельзя!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
  int i=1;
void f(int n) 
{
    if (n==2) 
        cout<<"YES"; 
    if (n<2) 
        cout<<"NO";      
    if (n>2) 
       {i++; f(n/2);}          
}        
int main()
{   int  k;
    cout<<"\n vv k";
    cin>>k;
    f(k);
    cout<<"\n 2^"<<i;
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.05.2018, 18:26
Ответы с готовыми решениями:

Точная степень двойки
Само задание: Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. ...

Вычислить 10-ю степень двойки сложением, умножением и просто возведением в степень.
Написать код на С++ или С# или на Java Вычислить 10-ю степень двойки 1 - сложением, умножением и просто возведением в степень.

Точная P-ая степень
Точная P-ая степень Число x является точным квадратом, если для некотого целого b, x = b2. Аналогично x является точным кубом, если для...

28
 Аватар для mat_for_c
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
02.05.2018, 18:34
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool is_pow_2 (unsigned int N) {
   return (N & (N-1)) == 0;
}
 
int main() {
   cin >> N;
   
   if (is_pow_2(N))
      cout << "YES";
   else
      cout << "NO";
   
   return 0;
}
0
354 / 135 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
02.05.2018, 18:40
0. Его натуральность, конечно, спорна, зато принадлежность к степеням уже нет
0
 Аватар для mat_for_c
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
02.05.2018, 18:43
Цитата Сообщение от Ромаха Посмотреть сообщение
Его натуральность, конечно, спорна
0 - это не натуральное число
0
354 / 135 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
02.05.2018, 18:49
тыц 12-ая страница
0
02.05.2018, 18:55

Не по теме:

Цитата Сообщение от Ромаха Посмотреть сообщение
тыц 12-ая страница
Тут я бы поспорил, т.к. там написано, что N - это обозначение "множества натуральных чисел, а также множества натуральных чисел и нуля", т.е. 0 не входит в это множество. Видимо иногда ученым лень писать https://www.cyberforum.ru/cgi-bin/latex.cgi?{N}_{0}, поэтому просто пишут N

0
02.05.2018, 18:56

Не по теме:

Цитата Сообщение от Ромаха Посмотреть сообщение
Его натуральность, конечно, спорна
Скажем честно. Я выиграл

0
02.05.2018, 19:08

Не по теме:

Цитата Сообщение от Ромаха Посмотреть сообщение
Скажем честно. Я выиграл
Нет. Множество натуральных чисел и нуль - это значит, что 0 не входит в это множество, т.е. взято их объединение.

0
354 / 135 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
02.05.2018, 19:14
Да в честь чего?
Цитата Сообщение от mat_for_c Посмотреть сообщение
"множества натуральных чисел, а также множества натуральных чисел и нуля"
И где же это написано? С каких пор positive - это натуральные?
0
02.05.2018, 19:19

Не по теме:

Цитата Сообщение от Ромаха Посмотреть сообщение
И где же это написано?
на 12 странице.
Как видите, вначале идет "множество натуральных чисел", а потом через запятую "множество натуральных чисел с нулем".

Миниатюры
Точная степень двойки  
0
 Аватар для mat_for_c
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
02.05.2018, 19:20
Вот
Миниатюры
Точная степень двойки  
0
354 / 135 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
02.05.2018, 19:21
У определенно разные страницы
Где тут "множество натуральных чисел с нулем"?
Миниатюры
Точная степень двойки  
0
354 / 135 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
02.05.2018, 19:22
Positive. Это ненатуральные. Это положительные. Разница есть
0
 Аватар для mat_for_c
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
02.05.2018, 19:26

Не по теме:

Цитата Сообщение от Ромаха Посмотреть сообщение
Где тут "множество натуральных чисел с нулем"?
И в правду, где? =-O Все, сдаюсь



Добавлено через 2 минуты
тогда надо дописать код:
C++
1
2
if (N == 0)
   cout << "Noooooooo";
0
02.05.2018, 19:27

Не по теме:

Ромаха, Вики :)

Иногда, особенно в иностранной и переводной литературе, в первой и третьей аксиомах Пеано заменяют единицу на ноль. В этом случае ноль считается натуральным числом...

В русской литературе обычно ноль исключён из числа натуральных чисел, а множество натуральных чисел с нулём обозначается как N0 (N нулевое). Если в определение натуральных чисел включен ноль, то множество натуральных чисел записывается как N , а без нуля — как N*.

В международной математической литературе, с учётом сказанного выше и во избежание неоднозначностей, множество { 1 , 2 , … } обычно называют множеством положительных целых чисел и обозначают Z+. Множество { 0 , 1 , … } зачастую называют множеством неотрицательных целых чисел и обозначают Z ⩾ 0

0
 Аватар для Nishen
1358 / 856 / 366
Регистрация: 26.02.2015
Сообщений: 3,814
02.05.2018, 19:27
Если вы проходите курс на Stepic от ВШЭ и Академии Яндекса, то вам нужно использовать только циклы, ветвления и переменные.
Можете воспользоваться таким решением:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main() {
  // put your code here
  int number = 0;
  cin >> number;
  while (number > 1 && number % 2 == 0) {
      number = number / 2;
  }
  if (number == 1) {
      cout << "YES";
  } else {
      cout << "NO";
  }
  return 0;
}
0
354 / 135 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
02.05.2018, 19:29
Цитата Сообщение от mat_for_c Посмотреть сообщение
тогда надо дописать код:
Дык кто был прав?
Я
Обращайтесь
1
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
03.06.2018, 14:04
Vanish_2048, здравствуйте! Вот еще вариант:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>
 
    using namespace std;
 
bool isPowOfTwo(int n) {
    if (n == 0)
        return false;
    while (n != 1) {
        if (n % 2 != 0)
            return false;
        n = n / 2;
    }
    return true;
}
 
int main() {
    int n;
    cin >> n;
    if (isPowOfTwo(n)) cout << "YES\n";
    else cout << "NO\n";
    system("pause");
    return 0;
}
0
 Аватар для Herji
299 / 208 / 174
Регистрация: 11.05.2016
Сообщений: 655
03.06.2018, 14:37
или еще:
C++
1
2
3
4
5
bool foo(int x)
{
    if(x) while(!(x%2)) x/=2;
    return(x==1);
}
Добавлено через 15 минут
или
C++
1
2
3
4
5
6
7
#include <bitset>
 
bool foo(int x)
{
    std::bitset<sizeof(int)*8> result(x); //у меня восемь
    return (result.count() == 1);
}
Добавлено через 35 секунд
Забавная задачка)
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
03.06.2018, 14:40
Цитата Сообщение от Ромаха Посмотреть сообщение
Дык кто был прав?
Я
Число ноль не относится к множеству натуральных чисел.
На скрине:
the set of natural numbers: N*={1,2,3 ...}
the set of positive integers and zero: N={0,1,2,3 ...}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.06.2018, 14:40
Помогаю со студенческими работами здесь

степень двойки
Вводится число. Напечатать YES, если оно является степенью двойки, NO - иначе. int a,b=1; cin&gt;&gt;a; for(;;) { b=b*2;...

Степень двойки
Изучаю программирование. Попытался решить известную задачу. Программа компилируется, но если ввести к примеру 8 она выдает &quot;no&quot;....

Найти степень двойки
Дано целое число N&gt;0, являющееся некоторой степенью числа 2:N=2 ^k. Найти целое число К - показатель этой степени. Если можно на С

Максимальная степень двойки
&quot;F(a, b) = x - 1, где x - максимальная степень двойки, на которую делится нацело a-b, если a ≠ b и F(a, b) = -1, если a = b.&quot; ...

Степень двойки в степени десятки
Допустим, есть большое число типа double или extended. Дана степень десятки: 1Е+228. 1Е+228=2760. Вот задача: Сколько степеней двойки в...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru