Hãy tạo một dãy gồm 10 số nguyên được tạo ngẫu nhiên từ n (1≤n≤15). Viết chương trình tìm dãy con liên tiếp tăng dài nhất (dãy con tăng phải có ít nhất hai phần tử). Kết quả ghi vào tệp DAYCON.OUT là các phần tử của dãy con tìm được. Nếu không có dãy con tăng nào thì ghi KHONG. Nếu có nhiều dãy con dài nhất thì ghi luôn các phần tử của dãy con đó vào têp ở dòng tiếp theo.
1 câu trả lời
var a:array[1..1000] of longint;
i,n,j,dem,d,c:word;
f:text;
const fo='DAYCON.OUT';
begin
randomize;
repeat
write('n=');read(n);
until (1<=n) and (n<=15);
for i:=1 to 10 do a[i]:=random(n);
i:=1;
d:=1;c:=1;
while i<=10 do
begin
j:=i+1;
while a[j]>a[j-1] do inc(j);
if j>i+1 then
if j-i>c-d then
begin
c:=j-1;
d:=i;
inc(dem);
end;
i:=j;
end;
assign(f,fo);rewrite(f);
for i:=1 to 10 do write(f,a[i],' ');
writeln(f);
if dem>0 then
begin
for i:=d to c do write(f,a[i],' ');
end
else writeln(f,'KHONG');
close(f);
end.
Câu hỏi trong lớp
Xem thêm