主题:[讨论]十万火急呀!大牛来帮帮我呀!++++++++50!
梦幻神兵
[专家分:600] 发布于 2006-03-04 17:05:00
删数问题:一个高精度正整数N,去掉其中任意S个数字后剩下的数字按从左到右的顺序将组成一个新的整数,对于给定的N和S,编程寻找一种方案,使剩下的数字组成的新数最小,输出这个新数。[em1]
回复列表 (共5个回复)
沙发
47 [专家分:590] 发布于 2006-03-05 09:41:00
用动态规划嘛
板凳
bigchen [专家分:1940] 发布于 2006-11-03 07:18:00
也可以用贪心解决:
Program Delete_digit;
Var n:string;{n是由键盘输入的高精度正整数}
s,a,b,c:byte;{s是所要删除的数字的个数}
begin
readln(n); readln(s);
for a:=1 to s do
for b:=1 to length(n) do
if b<>length(n) then
begin if n[b]>n[b+1] then begin delete(n,b,1);break; end end
else delete(n,b,1);
writeln(n);
end.
3 楼
编程黑客 [专家分:1660] 发布于 2006-11-07 22:02:00
if b<>length(n) then
begin if n[b]>n[b+1] then begin delete(n,b,1);break; end end
else delete(n,b,1);
这句是什么意思啊
4 楼
zjh1312 [专家分:90] 发布于 2007-03-14 21:11:00
什么是动态规划啊???加我QQ:529828394...注明PASCAL
5 楼
LSQ [专家分:220] 发布于 2007-05-05 10:39:00
动态规划
我来回复