nhập vào 1 xâu gồm các chữ cái in hoa, xuất ra xâu có dạng được nén lại.
vd: in: AABBBBBDKKKB out: 2A5BD3KB
nhập vào 1 xâu gồm các chữ cái in hoa, xuất ra xâu có dạng được nén lại.
vd: in: AABBBBBDKKKB out: 2A5BD3KB
run=1;
str="";
kytubatdau=chuoi[0];
for i: 1-> length(chuoi)
{
if(kytubatdau==chuoi[i])run++;
else
{
if(run==1) str= str + kytubatdau;
else
{
str= str + run + kytubatdau;
run = 1;
}
kytubatdau=chuoi[i];
}
}
==> ket qua in ra "str"
pascal chơ mô fai là C+, chuyển sang pascal cấy!! tks
chờ mình down pascal về cái giúp bạn.
Bà mịa.
Thứ 1: Phải làm rồi mới hỏi xem sai chỗ nào, đằng này lười ko chịu làm rồi nhờ giải dùm, như vậy đã là quá tệ.
Thứ 2: C hay Pascal chỉ khác nhau cách viết chứ thuật toán như nhau, đã biết thuật toán rồi mà còn ko biết làm nữa thì thực sự là quá quá tệ hại.
Code của bạn đây:
program nenxau;
var xau :string;
i,j,k :integer;
ch :char;
begin
write('Nhap xau: ');
readln(xau);
j:=length(xau);
i:=1;
write('Xau nen: ');
ch:=xau[1];
while (i<=j) do
begin
k:=0;
while (ch=xau[i]) do
begin
inc(k);
inc(i);
end;
ch:=xau[i];
if (k=1) then
write(xau[i-1])
else
write(k,xau[i-1]);
end;
readln;
end.
--------------------------------
chúc ban học tốt.
.............................................
var m:byte; u:char; st:string;
begin
write('Nhap xau: ');
readln(st);
while length(st)<>0 do
begin
m:=0; u:=st[1];
while pos(u,st)<>0 do
begin
m:=m+1;
delete(st,pos(u,st),1);
end;
write(m,u);
end;
readln
end.
...............................................
Bạn cũng có thể sử dụng cách này
Hay quá mình cũng đang làm bài này
Bookmarks