Hướng dẫn how do you check if a number is power of 2 or not in python? - làm cách nào để kiểm tra xem một số có phải là lũy thừa của 2 hay không trong python?
Thao tác bitMột cách tiếp cận sẽ là sử dụng các thao tác bit:bit manipulations: Show
Giải thích: Mỗi sức mạnh của 2 có chính xác 1 bit được đặt thành 1 (bit trong chỉ số nhật ký-2 của số đó). Vì vậy, khi trừ 1 từ nó, bit đó lật xuống 0 và tất cả các bit trước lật xuống 1. Điều đó làm cho 2 số này nghịch đảo của nhau như vậy khi và chúng tôi sẽ nhận được 0 do kết quả. every power of 2 has exactly 1 bit set to 1 (the bit in that number's log base-2 index). So when subtracting 1 from it, that bit flips to 0 and all preceding bits flip to 1. That makes these 2 numbers the inverse of each other so when AND-ing them, we will get 0 as the result. Ví dụ:
Vì vậy, kết luận, bất cứ khi nào chúng tôi trừ một số từ một số và kết quả với chính số đó và điều đó trở thành 0 - số đó là sức mạnh của 2! Tất nhiên, và bất cứ điều gì với math Chức năngBạn luôn có thể sử dụng các hàm toán học, nhưng lưu ý rằng sử dụng chúng mà không cần quan tâm có thể gây ra kết quả không chính xác:could cause incorrect results:
Đáng lưu ý rằng đối với bất kỳ 1 nào, cả hai chức năng sẽ ném 2 vì nó không được xác định về mặt toán học (và do đó không nên đưa ra một vấn đề hợp lý).
Như đã lưu ý ở trên, đối với một số số, các chức năng này không chính xác và thực sự cho kết quả sai:FALSE RESULTS:
Điều này là do các hàm (Mở rộng) Thời gianMột số thời gian đã trôi qua kể từ khi câu hỏi này được hỏi và một số câu trả lời mới đã đưa ra những năm qua. Tôi quyết định mở rộng thời gian để bao gồm tất cả chúng. Theo các tài liệu toán học, 1 với một cơ sở nhất định, thực sự tính toán 2 rõ ràng là chậm. 3 được cho là chính xác hơn, và có lẽ hiệu quả hơn. Thao tác bit là các hoạt động đơn giản, không gọi bất kỳ chức năng nào.Vì vậy, kết quả là:
Mã tôi đã sử dụng cho các biện pháp này có thể được tạo lại trong bản sao này (được đặt từ cái này). Tìm xem một số nhất định có phải là sức mạnh của 2 sử dụng hack điểm nổi hay không:n, write a function to find if it is a power of 2 or not Examples:
Để giải quyết vấn đề theo ý tưởng dưới đây:
Dưới đây là việc thực hiện phương pháp trên: C++ 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 7 1 6 7 8 90 0
4 0 3 6 70 60 7 0 8
7n != 0 40 7 0 8
7n != 0 40 7 0 8
math.log2(n).is_integer() 7abs(math.frexp(n)[0]) == 0.5 1 math3
2 3 4 5 6 7 8 9 0 1 2 3 7 1 6 7 8 90 0
4 0 3 6 7 02 03 6 05 06 03 6 09 10 7 12 03 6 05 06 03 6 09 10 7n != 0 40 7 0 8
math.log2(n).is_integer() 7abs(math.frexp(n)[0]) == 0.5 1 math3C Java 25 26 7 6 27 28 7 30 31 3 4 5 0 8 390 41 42 54 4 56 57 58 51 60 70 1 42 1 2 3 7 6 0 1 6 4 50__151515152 42 760 7 10 7 64 30 66 67 42 76n != 0 1 10 0 8 72 73 74 42 760 7 10 0 80 42 76n != 0 1 10 70 1
Python3 0 80 0 8 72 88 74 25 math 05 06 7 8 09____210 10 0 13 0 1 2 7 1 19 20 42 2222151515174 42 33 05 26 7 8 72 73 44 0 46 60 7 41 7 80 13 0 46 6n != 0 1 41 7 8 72 88 44 0 46 60 7 41 7 80 13 0 46 6n != 0 1 41
C# 7 1 29 10 10Java 25 26 7 6 27 28 7 30 31 3 4 5 0 8 390 41 00 01 42 54 4 05 57 07 70 1 42 1 2 3 7 6 0 1 6 4 50__151515152 42 210 7 10 0 80 42 21n != 0 1 10 7 64 30 66 67 42 210 7 10 0 80 42 21n != 0 1 10 70 1
abs(math.frexp(n)[0]) == 0.5 0math.log2(n).is_integer() 8 n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 72 n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 73 n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 74 46 0 80 6 0 8 72 88 74 42 58 25 math 05 06 6 7 8 09____210 10 0 13 42 9 69 62 76
8 19 0 1 2 80 7 1 19 20 8 32 0 1 2 80 7 1 19 20 96n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 42import math math.log(n, 2).is_integer() 2222151515174 97 05 26 7 6 27 28 7 30 31 3 4 5 0 8 390 41 70 1 42 1 2 3 0 19 20 10 7 80 0 19 26 10 7 8 32 0 19 20 10 7 80 0 19 26 10 41Độ phức tạp về thời gian: O (1) Không gian phụ trợ: O (1)O(1) Tìm xem một số nhất định có phải là sức mạnh của 2 sử dụng toán tử phân chia không:Để giải quyết vấn đề theo ý tưởng dưới đây:
Dưới đây là việc thực hiện phương pháp trên: C++ 8 9 0 1 2 3 4 5 6 7 8 9 0 1 math 3 7 58 59 0 8 62 42 1 math 3 0 67 70 1 7 1 72
4 0 3 6 70 6 05 n != 0 0 09 3
7n != 0 4 05 n != 0 0 09 3 7 1 math 3
C
2 3 4 5 6 7 8 9 0 1 math 3 7 58 59 0 8 62 42 1 math 3 0 67 70 1 7 1 72
4 0 3 6 7 02 03 6 05 06 03 6 09 10 7 12 03 6 05 06 03 6 09 10 7 1 math 3
CJava 25 0 51 27 28 7 6 7 30 31 3 4 5 0 8 390 41 42 1 2 3 0 58 0 730 740 75 42 8 0 78 51 0 800 41 420 88 51 3 00 1 57 1 2 3 70 1 0 1 0 95 3 7 6 7 64 30 66 n != 0 03 42 760 7 10 0 80 0 8 72 73 74 42 76n != 0 1 10 42 760 7 10 0 80 42 76n != 0 1 10 70 1
Python3 0 8 72 88 74 05 26 7 8 n != 0 43 10 10 0 n != 0 47 0 1 5 7 58 n != 0 53 10 0 74n != 0 47 0 8 n != 0 43n != 0 60 51 n != 0 62 10 42 1 5 0n != 0 70 10 n != 0 70 20____220 51 7 1 7 7 8 72 73 44 0 46 6n != 0 93 41 7 80 13 0 46 6math 01 41 7 8 72 88 44 0 46 6n != 0 93 41 7 80 13 8 35 10 10 38 13C# 0 46 6math 01 41 25 0 51 27 28 7 6 7 30 31 3 4 5 0 8 390 41 42 1 2 3 0 58 0 730 740 75 42 8 0 78 51 0 800 41 42 67 00 1 57 1 2 3 70 1 0 1 0 95 3 7 6 7 64 30 66 n != 0 03 0 8 72 73 74 70 1
n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 42 n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 76n != 01 n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 10 46 0 8 72 88 74 6 05 26 7 1 math 3C 6 7 8 6 62 math.log(x[, base]) 04 0 1 math 3 7 62 math.log(x[, base]) 10 62 math.log(x[, base]) 12
1 72
8 19 7 80 05 3 80 7 80 09 3 8 32 7 80 05 3 80 7 80 09 3 96JavaScript 97 7 47 00 7 6 0 8 9 42 1 math 3 0 58 math.log(x[, base]) 54 0 6 42 8 math.log(x[, base]) 59 57 1 math 3 42math.log(x[, base]) 64 00 1 0 1 72 7math.log(x[, base]) 71Các 7math.log(x[, base]) 830 7math.log(x[, base]) 77n != 0 1 10 41Độ phức tạp về thời gian: O (log n) Không gian phụ trợ: O (1)O(log
N) Dưới đây là việc thực hiện đệ quy của phương pháp trên:C++ 8 9 0 1 2 math.log(x[, base]) 94 4 5 6 7 8 base=2 00 0 1 0 95 3 7 80 8 base=2 08 0 1 2 3 7 1 base=2 15
4 0 3 6 7 4 base=2 22 7 4 base=2 25 7 8 base=2 28 0base=2 30base=2 31 n != 0 2 7 80 0base=2 30base=2 37 n != 0 2 7 8 base=2 41 0base=2 30base=2 31 n != 0 2 7 80 0base=2 30base=2 37 n != 0 2
math.log2(n).is_integer() 7math.log2(n).is_integer() 8 base=241
2 math.log(x[, base]) 94 4 5 6 7 8 base=2 00 0 1 0 95 3 7 80 8 base=2 08 0 1 2 3 7 1 base=2 15
4 0 3 6 7 4 base=2 22 7 4 base=2 25 7 8 base=2 28 0 03 6base=2 94 10 7 80 0 03 6 001 10 7 8 base=2 41C 7 80 0 03 6 001 10
abs(math.frexp(n)[0]) == 0.5 0 n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 03abs(math.frexp(n)[0]) == 0.5 6base=294 n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 10Java 25 020 27 28 7 6 7 30 31 math.log(x[, base]) 94 4 5 0 8 390 74 41 42 1 0 95 3 0 80 8 0 78 51 0 80__ 42 1 2 3 70 1 0 1 056 51 10 7 6 7 64 30 66 67 0 4 070 88 3 0 4 075 076 3 42 084base=2 31 086math.log(x[, base]) 75 088 10 0 80 42 084base=2 37 086math.log(x[, base]) 75 088 10 0 8 0800 95 41 0 8 1010 95 41 086math.log(x[, base]) 75 088 10 0 80 42 084base=2 37 086math.log(x[, base]) 75 088 10 70 1
Python3 42 084base=2 31 05 124 7 8 n != 0 70 10 10 0 74 13 0 1 7 7 136 n != 0 70n != 0 60 51 n != 0 62__ 0 1 5 7 1 154 20 51 41 7 46 166 88 168 7 46 166 076 168C# 8 35 10 10 38 13 25 020 27 28 7 6 7 30 31 math.log(x[, base]) 94 4 5 0 8 390 74 41 42 1 0 95 3
0 80 8 0 78 51 0 80__ 42 1 2 3 70 1 7 30 66 14 7 6 0 4 base=2 22 0 4 base=2 25 0 8 220 42 222base=2 31 224math.log(x[, base]) 75 088 10 00 1 0 80 6 42 222base=2 37 224math.log(x[, base]) 75 088 10 00 1 0 8 244 42 222base=2 31 10 00 1 0 80 6 42 222base=2 37 10 00 1 70 1
abs(math.frexp(n)[0]) == 0.5 0math.log2(n).is_integer() 8 n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 244 97JavaScript 6 47 265 267 8 base=2 00 7 1 0 95 3 278 279 267 80 8 277 7 1 2 3
267 1 base=2 15 288 289 288 291 8 0800 95____ 41 267 19base=2 31 math.log(x[, base]) 755____10888 10 80 19base=2 37 math.log(x[, base]) 75 0888 10 8 0800 95____ 41 80 267 19base=2 31 math.log(x[, base]) 755____10888 10 41
math.log2(n).is_integer() 8 n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 101095____ n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 41 267 19base=2 37 math.log(x[, base]) 755____10888 10
Tìm xem một số nhất định có phải là công suất 2 hay không bằng cách kiểm tra số lượng các bit đã đặt: C++ 8Để giải quyết vấn đề theo ý tưởng dưới đây: Tất cả sức mạnh của hai số chỉ có một bộ một bit. Vì vậy, đếm số không. của các bit đã đặt và nếu bạn nhận được 1 thì số là công suất của 2. Vui lòng xem các bit bộ đếm trong một số nguyên để đếm các bit tập hợp. 6Dưới đây là việc thực hiện phương pháp trên: 9 0 1 2 3 4 5 42 345 00 1 0 349 70 1 7 4 337 7 58 340 70 1 267 80 8 277
7 1 2 3 6 267 1 base=2 15 288 289 288 291
math.log2(n).is_integer() 8 n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 080095____ n = 8 decimal | 8 = 2**3 | 8 - 1 = 7 | 8 & 7 = 0 | ^ | | binary | 1 0 0 0 | 0 1 1 1 | 1 0 0 0 | ^ | | & 0 1 1 1 index | 3 2 1 0 | | ------- 0 0 0 0 ----------------------------------------------------- n = 5 decimal | 5 = 2**2 + 1 | 5 - 1 = 4 | 5 & 4 = 4 | | | binary | 1 0 1 | 1 0 0 | 1 0 1 | | | & 1 0 0 index | 2 1 0 | | ------ 1 0 0 41 267 19base=2 31 math.log(x[, base]) 755____10888 10 80 19base=2 37 math.log(x[, base]) 75 0888 10 8 1010 95____ 41 7 6 267 19base=2 37 math.log(x[, base]) 755____10888 10Độ phức tạp về thời gian: O (log n) Không gian phụ trợ: O (log n) Tìm xem một số nhất định có phải là công suất 2 hay không bằng cách kiểm tra số lượng các bit đã đặt: 57 415 420 1 42 4190 74 421 00 1Để giải quyết vấn đề theo ý tưởng dưới đây: Tất cả sức mạnh của hai số chỉ có một bộ một bit. Vì vậy, đếm số không. của các bit đã đặt và nếu bạn nhận được 1 thì số là công suất của 2. Vui lòng xem các bit bộ đếm trong một số nguyên để đếm các bit tập hợp. 00 1Dưới đây là việc thực hiện phương pháp trên: 70 1 9 0 1 2 3 4 5 7 4 337 42 760 7 10 0 80 42 76n != 0 1 10 7 58 340 42 760 7 10 0 80 42 76n != 0 1 10 70 1
C# 0 8 343 80 19base=2 37 math.log(x[, base]) 75 0888 10 8 1010 95____ 41 7 6 267 19base=2 37 math.log(x[, base]) 755____10888 10Độ phức tạp về thời gian: O (log n) Không gian phụ trợ: O (log n) Tìm xem một số nhất định có phải là công suất 2 hay không bằng cách kiểm tra số lượng các bit đã đặt: 57 345 420 1 42 349 00 1Để giải quyết vấn đề theo ý tưởng dưới đây: 42 518Tất cả sức mạnh của hai số chỉ có một bộ một bit. Vì vậy, đếm số không. của các bit đã đặt và nếu bạn nhận được 1 thì số là công suất của 2. Vui lòng xem các bit bộ đếm trong một số nguyên để đếm các bit tập hợp. Dưới đây là việc thực hiện phương pháp trên: 70 1 9 0 1 7 6 2 3 4 5 7 4 337 70 1
Python3 7 58 340 0 8 343 7 8 354 0 1 0 95 3 4 0 3 70 6 05 n != 0 0 09 3 7 8 554 10 10 0 74 13 0 1 0 74 7 1 0 8 35 10 10 38 13 7 8 72 73 44 0 46 6n != 0 93 41 7 80 13 0 46 6math 01 41 7 8 72 88 44 0 46 6n != 0 93 41 7 80 13 0 46 6math 01 41JavaScript 97 7 47 639 7 6 0 643 0 58 340 42 8 343 57 415 420 1 42 349 00 1 0 8 660 42 1 0 95 3 00 1 0 1 2 3 70 1 7 8 6750 95 41 42 190 7 math.log(x[, base]) 75 682 10 0 80 42 19n != 0 1 math.log(x[, base]) 75 682 10 0 8 6940 95 41 42 190 7 math.log(x[, base]) 75 682 10 0 80 42 19n != 0 1 math.log(x[, base]) 75 682 10 267 41
Độ phức tạp về thời gian: O (log n) Không gian phụ trợ: O (1)Tìm xem một số đã cho là công suất của 2 sử dụng toán tử và (&):
Vì vậy, nếu một số N là sức mạnh của 2 thì bitwise & của N và N-1 sẽ bằng không. Chúng ta có thể nói n là sức mạnh của 2 hoặc không dựa trên giá trị của N & (N-1). Biểu thức N & (N-1) sẽ không hoạt động khi N là 0. Để xử lý trường hợp này, biểu thức của chúng tôi sẽ trở thành N & (! N & (N-1)) (nhờ https://www.geeksforgeek.org/program -to-find-whether-a-no-is-power-of-Two/Mohammad để thêm trường hợp này). & nbsp; C++ 8Dưới đây là việc thực hiện phương pháp trên: 9 0 1 6 2 3 4 720
7 1 724 6 4 0 3 70 6 05 n != 0 0 09 3 7n != 0 4 05 n != 0 0 09 3
math.log2(n).is_integer() 7abs(math.frexp(n)[0]) == 0.5 1 math3
746 9 0 1 6 2 3 4 720
7 1 724 6 7 02 03 6 05 06 03 6 09 10 7 12 03 6 05 06 03 6 09 10 7n != 0 4 05 n != 0 0 09 3
math.log2(n).is_integer() 7abs(math.frexp(n)[0]) == 0.5 1 math3C Java 27 784 7 30 31 3 4 720 70 1 7 6 7 6 0 1 7950 7970 74 7990 10 7 64 30 66 67 70 1
Python3 0 812 73 8140 7 math 70n != 0 1 0 812 88 8140 7 math 70n != 0 1 8 35 10 10 38 13 7 8 72 73 44 0 46 6n != 0 93 41 7 80 13 0 46 6math 01 41 7 8 72 88 44 0 46 6n != 0 93 41 7 80 13 0 46 6math 01 41
C# 05 831 7 1 834 835 6 837 838__ 9 77 7 6 27 28 70 1 7 30 2 3 4 720 7 6 0 1 898 7 64 30 66 14 70 1
PHP 46 47 925 49 41 6 1 49 931 49 933 49 935
8 19 7 80 05 3 80 7 80 09 3 8 32 7 80 05 3 80 7 80 09 3 96JavaScript 97 7 47 963 7 6 0 1 968 70 1 9710 7 math 70n != 0 1 10 19 977 9780 7 math 70n != 0 1 982 41Độ phức tạp về thời gian: O (1) Không gian phụ trợ: O (1)O(1) Tìm xem một số đã cho là công suất của 2 sử dụng toán tử và (&) và không (~):Để giải quyết vấn đề theo ý tưởng dưới đây:
Dưới đây là việc thực hiện phương pháp trên: C++ 8 9 0 1 2 392 990 990 5 6 7 8 9 0 1 math 3 7 8 002 0 1 72 7 1 math 3
4 0 3 6 7 014 05 n != 0 0 09 3 7 020 05 n != 0 0 09 3 7 1 math 3
|