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 là sức mạnh của hai : đúng
64 là sức mạnh của hai : đúng
22 là sức mạnh của hai : sai
324 là 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
- ›