|
删数问题的源程序:
输入数据:一个高精度正整数N,所删除的数字个数S。
输出数据:去掉的数字的位置和组成的新的正整数。
Program Delete_digit;
Var n:string;{n是由键盘输入的高精度正整数}
s,a,b,c:byte;{s是所要删除的数字的个数}
data:array[1..200] of 0..9; {记录删除的数字所在位置}
begin
readln(n);
readln(s);
for a:=1 to s do
for b:=1 to length(n) do if n[b]>n[b+1] then {贪心选择}
begin
delete(n,b,1);
data[a]:=b+a-1; {记录所删除的数字的位置}
break;
end;
while n[1]='0' do delete(n,1,1); {将字符串首的若干个“0”去掉}
writeln(n);
for a:=1 to s do writeln(data[a],' ');
end.
|