回 帖 发 新 帖 刷新版面

主题:[讨论]十万火急呀!大牛来帮帮我呀!++++++++50!

删数问题:一个高精度正整数N,去掉其中任意S个数字后剩下的数字按从左到右的顺序将组成一个新的整数,对于给定的N和S,编程寻找一种方案,使剩下的数字组成的新数最小,输出这个新数。[em1]

回复列表 (共5个回复)

沙发

用动态规划嘛

板凳

也可以用贪心解决:
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 楼

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 楼

什么是动态规划啊???加我QQ:529828394...注明PASCAL

5 楼

动态规划

我来回复

您尚未登录,请登录后再回复。点此登录或注册