键盘输入一个高精度正整数t(不超过240位),去掉其中S个数字后,剩下的
数字按原顺序组成一个新数,试对给定的 t 与 S, 寻找一种方案,使剩下的数字
组成的新数最小.
program lxw001;
var t1,t2:string[250];
a,b:array[1..250] of integer;
i,j,r,s,s1:integer;
begin
writeln(’输入数字串:’); readln(t1);
writeln(’输入删除数字个数:’);readln(s);
s1:=s; r:=0; t2:=’’;
for i:=1 to length(t1) do a[i]:=i;
repeat
i:=1;
for j:=1 to s1+1 do if t1[j]<t1[i] then i:=j;
if i>1 then
for j:=1 to i-1 do begin inc(r); b[r]:=a[j] end;
t2:=t2+copy(t1,i,1);
delete(t1,1,i);
for j:=1 to length(t1) do a[j]:=a[j+i];
s1:=s1-(i-1);
if length(t1)=s1 then {处理尾部应删的数}
begin
for j:=1 to s1 do begin inc(r);b[r]:=a[j] end;
s1:=0; t1:=’’;
end;
until s1=0;
t2:=t2+t1;
writeln(’最小数:’,t2);
write(’删除数字的位置: ’);
for&nbs此文共有2页 上一页 1 2 下一页 |