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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.81
DRIVER733
0 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 12
#1

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

10.07.2012, 00:44. Просмотров 3905. Ответов 2
Метки нет (Все метки)

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

Операцией возведения в степень пользоваться нельзя!


ввод - 8 вывод - YES

ввод - 3 вывод - NO
Правильно ли мое решение? Есть ли другие решения?

Заранее спасибо.

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 <iostream>
 
using namespace std;
 
 
void f(int n)
{
    if (n==2)
        cout<<"YES";
    
    if (n<2)
        cout<<"NO";
        
    if (n>2)
        f(n/2);
}
        
 
int main()
{
    f(8);
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2012, 00:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выведите YES, если число N является точной степенью двойки, или NO в противном случае.(Рекурсия) (C++):

Рекурсия: вывести слово Yes, если число N является точной степенью двойки, иначе - No - C++
Дано натуральное число N. Вывести слово YES, если число N является точной степенью двойки, или слово NO в противном случае. При решении...

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

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

Определите, является ли число степенью числа 2, и если является, то выведите значение этой степени - C++
Дано натуральное число n. Определите, является ли оно степенью числа 2, и если является, то выведите значение этой степени / С++ для...

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

Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае не изменять его. Вывести полученное число - C++
Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае не изменять его. Вывести полученное число. ...

2
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
10.07.2012, 01:04 #2
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
int main()
{
    int n = 8;
    std::cout << ( ( n & ( n - 1 ) ) ? "NO" : "YES" ) << std::endl;
    return 0;
}
1
DRIVER733
0 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 12
10.07.2012, 21:15  [ТС] #3
Mиxaил, Спасибо за ответ. Не могли бы вы мне, как новичку, объяснить что происходит в вашем коде. Мне еще не приходилось встречаться с операторами "&" и "?", что они означают?
p.s. гуглил, но не понял значения этих операторов.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2012, 21:15
Привет! Вот еще темы с ответами:

Описать функцию, возвращающую true, если натуральное число является простым, и false в противном случае - C++
Надо написать программу на c++ Описать функцию, возвращающую true, если натуральное число является простым, и false в противном случае. С...

Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае. - C++
пробовала сделать ,но выдаёт ошибки я не понимаю,что он требует ТЕКСТ ЗАДАЧИ. Даны два целых числа A и В (каждое в отдельной...

Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае вычесть из него 2 - C++
Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае вычесть из него 2. Вывести на экран.

Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае вычесть из него - C++
Когда ввожу положительное число,всё работает, ввожу отрицательное к примеру -7,мне выбивает -9...в чем ошибка,подскажите пожалуйста) ...


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

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

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