РБ
Роман Богдашкин

помогите плз перевести их с++ в с

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

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

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

ввод - 3 вывод - NO

#include

int main()
{
int n = 8;
std::cout << ( ( n & ( n - 1 ) ) ? "NO" : "YES" ) << std::endl;
return 0;
}

NK
Nurik Kurpekulov

Можно тупо перебором делать. Если в школе, то возможно этого и требуют) )
То есть циклом перебираешь все степени двойки и проверяешь) )

P.S. Быстрое умножение на двойку - побитовый сдвиг

ВК
Владимир Краюшкин

Считаете количество единиц в числе (это деление/остаток или сдвиг/маскировка) .
Заводите массив чисел, которые точные степени двойки и сравниваете свое с элементами из этого массива.

НФ
Надежда Федоркина

#include

int is_pow_of_2(int n) {
if (n < 1) {
return 0;
}

if (n == 1) {
return 1;
}

if (n % 2 == 0) {
return is_pow_of_2(n / 2);
}

return 0;
}

int main() {
int n;
char * result;
scanf("%d", &n);

result = is_pow_of_2(n) ? "YES" : "NO";
printf("%s", result);

return 0;
}

Похожие вопросы
Срочно помогите плз! Youtube!
помогите плз по паскалю
помогите плз справить ошибку
Помогите плз с Java scrip)
Помогите плз решить задачку!!
Помогите срочно плз!
Задачка по С++. Помогите плз
помогите кто нибудь плз!
Помогите плз
помогите плз.. . аааааааааааааааааааааааааааааааааааааааааааааааааааааааа