30/09/2018, 18:15

Tư vấn code bài toán in ra tất cả các chuỗi nhị phân có độ dài n

Tình hình là em mới học giải thuật. Em đọc tài liệu của thầy Lê Minh Hoàng tới bài in ra tất cả các chuỗi nhị phân có độ dài n. Sau 3 ngày thì em mới code được chừng này.

Nhưng khi chạy thì thiếu mất mấy chuỗi

Anh nào rành thì chỉ hộ em với

*grab popcorn* viết 20:31 ngày 30/09/2018

while(i>=0) chứ ko phải while(i>0)

17XGOD viết 20:15 ngày 30/09/2018

tại sao vậy anh ? anh có thể giải thích giúp em được không

Gió viết 20:22 ngày 30/09/2018

vì mảng x có bit cao nhất tại chỉ số i=0

17XGOD viết 20:21 ngày 30/09/2018

anh có thể giải thích kĩ hơn một chút được không ạ ?

*grab popcorn* viết 20:24 ngày 30/09/2018

While(i>0) thì code của bạn chỉ chạy tới n-1 thôi. Do đâu thì như Gió nói rồi đó.
Do bạn đã bỏ qua bit cao nhất ở vị trí 0.
Như trường hợp này: 011
thì ở vòng while(x[i]==1..) --i; làm cho i = 0. (vị trí cao nhất đó)
Đáng lẽ nó sẽ in ra 100 ở while kế tiếp, nhưng khi trở lại đầu vòng while, nó kiểm tra thấy i = 0 không thỏa i>0 nên thèm làm nữa. Và thoát luôn.

17XGOD viết 20:25 ngày 30/09/2018

À em thông rồi TY

Bài liên quan
0