On May 3, 10:56 am, Phan Văn Thanh <thanhpv...@vnu.edu.vn> wrote:
> tức là theo ý bạn thì kí tự tương đương với số nguyên đúng k?
> nhưng nếu như thế thì mình phải tra bảng ascii để tìm giá trị số là gì sao?
> vd 'A' chỉ 65 chẳng hạn.
>
> Vào 10:45:15 UTC+7 Thứ năm, ngày 03 tháng năm năm 2012, Hoàng Văn Phụng
Như ví dụ trên bạn có 10 phần tử, đầu tiên bạn tìm từ phần tử thứ 0
đến 9, sau đó 1 trong 2 trường hợp xảy ra
1. tìm tiếp từ phần tử 0-4 nếu phần tử thứ 5>'b'
2. tìm tiếp từ phần tử 5-9 nếu phần tử thứ 4<'b'
Việc chia để tìm kiếm sẽ lặp lại tiếp tục như vậy trong mỗi đoạn tìm
kiếm mới, bạn có thể dùng while, điều kiện dừng là khi phần tử ở giữa
đoạn tìm kiếm = 'b' (ta kiểm tra mỗi lần chia đoạn) hoặc là khoảng
tìm kiếm còn 1 phần tử, nếu phần tử này !='b' thì ko có b trong dãy.
nhớ luôn có 2 biến lưu 2 chỉ số đầu cuối của đoạn tìm kiếm.
Chúc bạn thành công.
@Thắng: Bạn làm sao xử lý xâu kí tự value (tạo bởi các kí tự '0',
'1',..., '9') và chuyển nó thành các chữ số trong vector<unsigned
char> digitpairs thì làm. Rõ ràng là ép kiểu không giải quyết được vấn
đề. Có thể ví dụ sau sẽ cho bạn câu trả lời.
Với value = "1234" thì
digitpairs[0] = 34 tức là = ('3' - '0') * 10 + ('4' - '0')
digitpairs[1] = 12 tức là = ('1' - '0') * 10 + ('2' - '0')