01/10/2018, 08:30

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’

Bigkizd viết 10:43 ngày 01/10/2018

Bit Processing basic

KYN viết 10:36 ngày 01/10/2018

đề 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
Gợi ý. tìm đc số 1 cuối cùng, dùng các function cơ bản của string…

rogp10 viết 10:42 ngày 01/10/2018

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

c2k viết 10:46 ngày 01/10/2018

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

c2k viết 10:42 ngày 01/10/2018

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

Kaito An viết 10:34 ngày 01/10/2018

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

c2k viết 10:40 ngày 01/10/2018

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

Kaito An viết 10:33 ngày 01/10/2018

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

KYN viết 10:34 ngày 01/10/2018

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

KYN viết 10:35 ngày 01/10/2018

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

Thanh Nhan Pham viết 10:39 ngày 01/10/2018

In [20]: a = 2000

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

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

Bài liên quan
0