Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để tìm xem một số có phải là lũy thừa của hai hay không?

Kiểm tra xem một số đã cho có phải là lũy thừa của 2. Trước tiên, hãy kiểm tra xem những số nào dưới đây là lũy thừa của hai hay không. Mã này kiểm tra xem số có lẻ hay không và sau đó chia nó đồng thời cho đến khi nó trở thành 0 hoặc lẻ. Nếu nó trở thành 0 thì nó là lũy thừa 2 còn nó thì không.

Một lựa chọn tốt hơn là lấy bản ghi của số. Nếu nó là một số nguyên, thì n là lũy thừa của 2 khác không. Các số là lũy thừa của 2:

2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 ...
22 = 4
25 = 32
210 = 1024


Input: 8
Output: Number is power of 2

Giải thích

Một phương pháp đơn giản cho việc này là chỉ cần lấy nhật ký của số trên cơ số 2 và nếu bạn nhận được một số nguyên thì số đó là lũy thừa của 2.

Bằng cách chia N nhiều lần cho 2 nếu N là số chẵn. Nếu nó kết thúc bằng 1 thì N là lũy thừa của 2

Ví dụ

#include <iostream>
using namespace std;
int main() {
   int n=8;
   if(n>0) {
      while(n%2 == 0) {
         n/=2;
      }
      if(n == 1) {
         cout<<"Number is power of 2"<<endl;
      }
   }
   if(n == 0 || n != 1) {
      cout<<"Number is not power of 2"<<endl;
   }
   return 0;
}