Javascript kiểm tra xem số có phải là lũy thừa của 2 không

Mục lục

Trong hướng dẫn này, chúng ta sẽ xem cách kiểm tra xem số có phải là lũy thừa của hai hay không
Có nhiều cách để kiểm tra xem một số có phải là lũy thừa của hai hay không

Cách tiếp cận 1

Đó là cách tiếp cận rất dễ dàng và thẳng tiến

  • Chạy vòng lặp while để kiểm tra điều kiện nếu n là số chẵn (n%2==0)
  • Nếu n chẵn thì chia cho 2 trong mỗi lần lặp
  • Khi bạn thoát khỏi vòng lặp while và n bằng 1 thì số đó là lũy thừa của hai,
  • Nếu số không bằng 1 thì số không phải là lũy thừa của hai

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

 

công khai tĩnh boolean powerOfTwoGeneral(int n)

{

while(n%2==0)

{

n = n / 2;

}

if(n == 1)

{

return true;

}

khác

{

trả về false;

}

}

 

Cách tiếp cận 2

Chúng ta có thể sử dụng bitwise và toán tử để kiểm tra xem số có phải là lũy thừa của hai hay không

1

2

3

4

5

6

 

công khai tĩnh boolean powerOfTwoBitwise(int n)

{

  return (n & n-1)=

}

 

Nó sẽ là một cách rất đơn giản để kiểm tra xem một số có phải là lũy thừa của hai hay không. Hãy xem nó hoạt động như thế nào
Giả sử n là 8. Biểu diễn nhị phân của nó sẽ là. 1000
biểu diễn nhị phân của 7 sẽ là. 0111
1 0 0 0
& 0 1 1 1
———-
0 0 0 0
———-
Nếu số là lũy thừa của 2, thì nó sẽ chỉ có một bit được đặt thành “1”
Ví dụ
số 8. 1000
32. 100000

Tương tự, khi bạn kiểm tra dạng nhị phân của 7 và 31, nó sẽ có tất cả các bit được đặt thành "1"
7. 111
31. 11111
vì vậy nếu bạn áp dụng bitwise & toán tử trên n và n-1 và kết quả là 0. Nó có nghĩa là số là sức mạnh của hai

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

 

gói org. arpit. java2blog;

 

lớp công khai PowerOfTwoMain {

 

công khai tĩnh vô hiệu chính(String[] args) {

  Hệ thống. ra. println("128 là lũy thừa của hai. " + powerOfTwoGeneral(128));

  Hệ thống. ra. println("64 là lũy thừa hai. " + powerOfTwoBitwise(64));

  Hệ thống. ra. println("22 là luỹ thừa hai. " + powerOfTwoBitwise(22));

  Hệ thống. ra. println("22 là luỹ thừa hai. " + powerOfTwoGeneral(22));

}

// Cách tiếp cận 1

công khai tĩnh boolean powerOfTwoGeneral(int n)

{

  trong khi(n%2==0)

  {

   n = n / 2;

  }

  nếu(n == 1)

  {

   trả về true;

  }

  khác

  {

   trả về false;

  }

}

// Cách tiếp cận 2

công khai tĩnh boolean powerOfTwoBitwise(int n)

{

  return (n & n-1)=

}

 

}

 

Khi bạn chạy đoạn mã trên, bạn sẽ nhận được kết quả bên dưới

1

2

3

4

5

6

 

128 sức mạnh của hai : đúng

64 sức mạnh của hai : đúng

22 sức mạnh của hai : sai

324 sức mạnh của hai : sai

 

Bài đăng này có hữu ích không?

Hãy cho chúng tôi biết nếu bạn thích bài viết. Đó là cách duy nhất chúng ta có thể cải thiện

Đúng

Không


nhập_liên hệ

Bạn cũng có thể thích

Đếm số lần xuất hiện của Ký tự trong Chuỗi trong Java

cách viết hoa chữ cái đầu tiên trong java

Chương trình Java để tìm chữ số đầu tiên và chữ số cuối cùng của một số

Chương trình Happy Number trong Java

Tìm số hoàn hảo trong Java

Cách tìm Số ma thuật trong Java

game đoán số trong java

Trả về chữ số cuối cùng thứ hai của số đã cho trong java

Chương trình Java để in bảng số

Chương trình java tính điểm học sinh

  • 2
  • 3
  • 5
Loading...

Làm cách nào để kiểm tra xem một số có phải là lũy thừa của 2 trong javascript không?

Tìm xem một số đã cho có phải là lũy thừa của 2 hay không bằng cách sử dụng toán tử chia. Để giải quyết vấn đề, hãy làm theo ý tưởng dưới đây. Một giải pháp khác là tiếp tục chia số đó cho hai, tôi. e, lặp đi lặp lại n = n/2 . Trong bất kỳ lần lặp nào, nếu n%2 trở thành khác 0 và n không phải là 1 thì n không phải là lũy thừa của 2.

Làm cách nào để kiểm tra sức mạnh trong JavaScript?

The Toán. phương thức pow() trả về giá trị của x theo lũy thừa của y (xy).