Задачи : Вопрос 1 : 61

Написать тело функции bool isExp (int32_t a) которая получает положительное число и возвращает true если это число является степенью двойки, т.е. pow(2, n) = a, n- натуральное число.
Время выполнения функции не должно зависеть от a.

 

Уважаемые учащиеся ниже Вы сможете увидеть ответ, перед тем, как ответить, пожалуйста, постарайтесь написать для себя ответ на черновике, и только потом сравните наш ответ с Вашим: 

 

 

Верно ли наше решение?

Ответ:

Тут стоит представить числа являющиеся степенью двойки в двоичном представлении, все они будут иметь один бит равный единице, а остальные нули (пример 8=0b00001000).
Если вычесть из любого числа являющегося степенью двойки 1, то все биты в этом числе будут равны 1 (пример 7=0b00000111).
Соответственно операция "побитовое И" для таких чисел даст в результате 0:

bool isExp(int32_t a) 
{ 
    return (a > 0 && (a & (a - 1)) == 0); 
} 
1 балл


© Copyright © 2017 - 2019 Все права защищены. Бесплатное онлайн образование.
  • https://disdik.munabarat.go.id/nusantara/slot/
  • https://dispendik.sidoarjokab.go.id/nuansa/gacor/
  • https://dkpd.grobogan.go.id/jakarta/gacor/
  • https://sbobet88.blog.unsia.ac.id
  • https://pafinusantara.blog.unsia.ac.id/bet88
  • https://idn-poker.blog.unsia.ac.id
  • https://slot777-gacor.blog.unsia.ac.id
  • https://agen-188bet.blog.unsia.ac.id
  • https://situs-slot.blog.unsia.ac.id
  • https://bet88-slot.blog.unsia.ac.id
  • https://2021.kinerja.ekon.go.id/up/slot777
  • https://2021.kinerja.ekon.go.id/halal/bet88
  • https://program-gacor.blog.unsia.ac.id
  • surapati.ac.id
  • untagsby.ac.id
  • kingandiboston.com
  • janeashton.com
  • redbrickcafechester.com
  • villanosdeljazz.com
  • slot