HackerRank : Day 10

À ừ nhỉ :)))
Ơ mà nếu muốn đảo ngược thì đảo lại như nào nhỉ

Mà ông giải thích kĩ hơn (minh họa ) cho tui cái phép n >>=1 đc ko,chưa thấy bảo giờ + chưa hiểu chuyển dời bit là như nào

thì n >>= 1 đơn giản cho ra kết quả tương đương với n = n/2 đó

tuy nhiên nếu chạy trên số âm thì nó sẽ không về 0, mà khi đến N = -1 thì nó sẽ lặp vô hạn ở đây
vì bản chất nó là dịch các bit sang phải 1 đơn vị và bit dấu giữ nguyên
vì vậy nếu nó là số âm thì các bit bậc cao sẽ luôn là 1, khi dịch bit thì các bit này vẫn luôn là 1, và đến 1 giới hạn số lần dịch phải thì biểu diễn nhị phân của n sẽ luôn là 1 -> giá trị = -1.

còn cái if(n&1) là sao ông nhỉ :)))

tìm hiểu thêm về phép toán xử lý bit nhé :3
hình như bác chưa biết gì về vụ này
& là phép and xử lý bit
n&1 hiểu đơn giản ở đây đang dùng để kiểm tra xe n có lẻ hay không (bit thứ 0 của n là bit1 hay không), cơ bản nó giống if (n % 2 == 1) như phép xử lí bit nhanh hơn so với phép toán thông thường, đặc biệt thằng mod là thằng chậm nhất trong các phép toán

1 Like

Ok thanks ông để tui google phát,mà thấy trên mạng có vẻ lan man :frowning:

Bạn đọc ở đây đi :slight_smile:

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