

Tự làm + không dùng AI
Làm bằng pascal
Bài 4. Thay đổi chữ số
Cho một số tự nhiên 𝑁. Hãy thay đổi tối đa hai chữ số của 𝑁 để được một số nhỏ nhất chia hết
cho 4. Số mới tạo thành phải có số chữ số bằng số chữ số của 𝑁 và không chứa chữ số 0 ở đầu.
Dữ liệu: Nhập vào một số tự nhiên 𝑁 (10 ≤ 𝑁 ≤ 1015).
Kết quả: Ghi ra một số là kết quả của bài toán.
Ví dụ:
Dữ liệu Kết quả Giải thích
168 100 Có nhiều cách đổi thành số chia hết cho 4 như:
108, 104, 164, 160, 200, … nhưng 100 là đáp án nhỏ nhất thỏa mãn.
26622 16612 Có nhiều các đổi thành số chia hết cho 4 như:
26600, 20612, 20620, … nhưng 16612 là đáp án nhỏ nhất thỏa mãn
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
uses crt;
var s,t,res:ansistring;
i,j,a,b:longint;
x:int64;
begin
clrscr;
readln(s);
res:='';
for i:=1 to length(s) do
for j:=i to length(s) do
for a:=0 to 9 do
for b:=0 to 9 do
begin
t:=s;
if i=j then
t[i]:=chr(a+48)
else
begin
t[i]:=chr(a+48);
t[j]:=chr(b+48);
end;
if t[1]='0' then
continue;
x:=(ord(t[length(s)-1])-48)*10+(ord(t[length(s)])-48);
if x mod 4<>0 then
continue;
if (res='') or (t<res) then
res:=t;
end;
writeln(res);
readln;
end.Hãy giúp mọi người biết câu trả lời này thế nào?

program ThayDoiChuSo;
uses sysutils;
var
s, t: string;
i, j, d1, d2, n, k: integer;
best, val: int64;
function chia4(st: string): boolean;
var x: integer;
begin
x := (ord(st[length(st)-1]) - 48) * 10 +
(ord(st[length(st)]) - 48);
chia4 := (x mod 4 = 0);
end;
begin
readln(s);
n := length(s);
best := high(int64);
for i := 1 to n do
for j := i to n do
for d1 := 0 to 9 do
for d2 := 0 to 9 do
begin
t := s;
t[i] := chr(d1 + 48);
if i <> j then
t[j] := chr(d2 + 48);
if t[1] = '0' then continue;
k := 0;
if t[i] <> s[i] then inc(k);
if (i <> j) and (t[j] <> s[j]) then inc(k);
if k <= 2 then
if chia4(t) then
begin
val := StrToInt64(t);
if val < best then best := val;
end;
end;
writeln(best);
end.Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin
187
1679
70
kiểm tra
371
872
231
chụp hả
371
872
231
thoải mái
187
1679
70
chạy trên phần mềm đâu ??
371
872
231
ít khi hc pas toàn c++ thôi
187
1679
70
thôi cx đc
371
872
231
xin ctlhn
187
1679
70
web của bro bị lỗi