02/10/2018, 13:59
REMOVBIT PTIT spoj- xóa BIT
Nguồn đề bài: http://www.spoj.com/PTIT/problems/REMOVBIT/ 1. Đề bài REMOVBIT spoj Cho số a viết ở hệ cơ số 2. Nhiệm vụ của bạn là phải xóa một chữ số để số còn lại xóa khi xóa là lớn nhất !!! Input Một dòng chứa số a viết ở hệ nhị phân. Output Số lớn nhất sau khi xóa 1 ...
Nguồn đề bài: http://www.spoj.com/PTIT/problems/REMOVBIT/
1. Đề bài REMOVBIT spoj
Cho số a viết ở hệ cơ số 2. Nhiệm vụ của bạn là phải xóa một chữ số để số còn lại xóa khi xóa là lớn nhất !!!
Input
Một dòng chứa số a viết ở hệ nhị phân.
Output
Số lớn nhất sau khi xóa 1 chữ số từ a.
Example
Input:
101
Output:
11
2. Hướng dẫn REMOVBIT spoj
– Khi viết ra giấy ta dễ dàng nhận thấy chỉ cần xóa số 0 đầu tiên từ trái qua sẽ thu được số lớn nhất.
– Vậy khi ko có số 0 thì sao? tức là gồm 1 dãy số 1, ta chỉ cần xóa 1 số bất kì.
– xuất ra ra kết quả.
3. code tham khảo REMOVBIT spoj
const fi=';
type data=longint;
var
f:text;
S,res:ansistring;
i,j:data;
ok:boolean;
begin
assign(f,fi); reset(f);
readln(f,s);
close(f);
ok:=false;
res:=';
for i:=1 to length(s) do
if ok=true then
res:=res+s[i]
else
begin
if s[i]='1' then
res:=res+'1'
else
ok:=true;
end;
if not ok then
delete(res,1,1);
writeln(res);
end.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | const fi='; type data=longint; var f:text; S,res:ansistring; i,j:data; ok:boolean; begin assign(f,fi); reset(f); readln(f,s); close(f); ok:=false; res:='; for i:=1 to length(s) do if ok=true then res:=res+s[i] else begin if s[i]='1' then res:=res+'1' else ok:=true; end; if not ok then delete(res,1,1); writeln(res); end. |