Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python đếm bit 0 trong một phạm vi

Cho một số nguyên dương và phạm vi các bit. Nhiệm vụ là đếm số bit 0 (unset bits) trong phạm vi đó.

 Input : n = 50, địa chỉ bắt đầu = 2, địa chỉ kết thúc = 5 Output : 2 

Có '2' bit 0 trong phạm vi từ 2 đến 5.

Thuật toán

 Bước 1: Chuyển n sang nhị phân bằng bin(). Bước 2: Loại bỏ hai ký tự đầu. Bước 3: Đảo ngược chuỗi. Bước 4: Đếm tất cả bit '0' từ chỉ mục l-1 đến r, trong đó r là exclusive. 

Mã ví dụ

 # Hàm đếm bit 0 trong phạm vi def countunsetbits(n,st,ed): # Chuyển n sang nhị phân bi = bin(n) # Loại bỏ hai ký tự đầu bi = bi[2:] # Đảo ngược chuỗi bi = bi[-1::-1] # Đếm bit '0' từ chỉ mục st-1 đến ed (exclusive) print (len([bi[i] for i in range(st-1,ed) if bi[i]=='0'])) # Chương trình chính if __name__ == "__main__": n=int(input("Nhập Số Dương ::")) st=int(input("Nhập Vị Trí Bắt Đầu")) ed=int(input("Nhập Vị Trí Kết Thúc")) countunsetbits(n,st,ed) 

Kết quả

 Nhập Số Dương ::> 50 Nhập Vị Trí Bắt Đầu2 Nhập Vị Trí Kết Thúc5 2