Bài tập Python chưa hiểu

Hi các anh,
nhờ các anh xem và giải thích 1 bài tập python này giup em , em mới học python nên hy vong dc học hỏi nhiều
ĐỀ Bài :
Đầu vào: một số nguyên dương
Đầu ra: phần từ số 1 cuối cùng trở về bên phải - của dạng binary của số đầu vào.
Hàm có sẵn: bin(10) == ‘0b1010’

Bit Processing basic

đề bài cóa sẵn ví dụ rồi mà
bin(10) == '0b1010'
thì phần từ số 1 cuối cùng trở về bên phải là 10 :smiley:
Gợi ý. tìm đc số 1 cuối cùng, dùng các function cơ bản của string…

Không dùng bit được vì Bignum là native.

mấy a có vd cho e dễ hiểu ko, vì em mới học chưa thông cho lắm :smiley:

đã làm được thanks @kyn9999

=)) post bài giải lên đi Cường

giải đúng yêu cầu còn code thì hiêu sao viết vậy nha
In [31]: input = 2000
In [32]: bin(input)
Out[32]: ‘0b11111010000’
In [36]: print(bin(input)[-5:])
10000

In [14]: a = 10

In [15]: b = bin(a).replace(“0b”,"")

In [16]: for i in range(len(b)):
…: if b[len(b)-1-i] == ‘1’:
…: print b[(len(b)-1-i):]
…: break
…:
10

làm thế này là ko được rồi:grin:
ai lại in ra rồi mới print như thế, nếu là số khác thì ko phải là -5 nữa mà là 1 số nào đó, mỗi lần in đều phải tính toán à :v

nghĩ cách nào không dùng vòng lặp xem, đọc kĩ các function của string xem dùng cái nào
https://www.tutorialspoint.com/python/python_strings.htm

1 Like

In [20]: a = 2000

In [21]: b = bin(a).replace(“0b”,"")

In [22]: print b[b.rfind(‘1’):]
10000

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?