|
键盘输入一个高精度正整数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] 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 i:=1 to s do write(b[i]," "); writeln; end.
|