Cho một dãy số khoảng 1000000 kí tự số toàn 0 và 1. Biết rằng các số 0 đứng
trước các chữ số 1: 000....0011...11. Hãy cho biết vị trí của số 0 cuối cùng trong
dãy.
Thuật toán:
Ta tiến hành tìm kiếm nhị phân trên xâu kí tự để tìm ra vị trí số 0 cuối cùng như
sau:
- Tìm phần tử giữa xâu đang xét
- So sánh kí tự ở vị trí giữa xâu với kí tự 0.
- Nếu kí tự giữa xâu là kí tự 0 thì ta tìm ở nửa sau của xâu, nếu không phải
kí tự 0 (mà là 1) thì ta tìm ở nửa trước của xâu.
//giúp mình nha !! yhamks
uses crt; var st:ansistring; i,d:longint; begin clrscr; readln(st); d:=0; for i:=length(st) downto 1 do if (st[i]='0') and (d=0) then begin writeln(i); inc(d); end; readln; end.
cái này tớ tự làm ,tớ ko bt có ai làm thế này ko nên sorry vậy