讨论 / 谁用Pascal过了
why19931123 2012-05-23 04:30:00
点我顶贴 收藏 删除
谁用Pascal过了

程序借我看一下下

我超时了

#1 slzxzh@2009-01-03 02:32:00
回复 删除
var

n:string;

q:boolean;

m,i,j:longint;

begin

readln(n);

readln(m);

for i:=1 to m do

begin

q:=true;

for j:=1 to length(n)-1 do

if n[j]>n[j+1] then

begin

delete(n,j,1);

q:=false;

break;

end;

if q then delete(n,length(n),1);

end;

while (n[1]=’0’) and (length(n)>1) do delete(n,1,1);

write(n);

end.

#2 青龙白狐@2009-01-03 05:41:00
回复 删除
贪心,什么都能过,何必区分pascal和C!!!
#3 hades@2009-01-10 05:03:00
回复 删除
program ss;

var

s:string;

i,j,k,t,l,p:integer;

begin

readln(s);

readln(t);

l:=length(s);

for i:=1 to t do

begin

p:=1;

while (s[p+1]>=s[p]) and (p<l) do

inc(p);

delete(s,p,1);

dec(l);

end;

while s[1]=’0’ do

delete(s,1,1);

writeln(s);

end.

#4 corn@2010-11-01 04:25:00
回复 删除
直接字符串处理:

Program t257;

Var n,t,len,i,j,w:integer;

s,ss,ans:string;

ch:char;

Begin

readln(s); len:=length(s); readln(n);

t:=0; len:=len-n; ans:='';

While t<len do begin

ss:=copy(s,1,n+1); ch:='0'; inc(t);

While pos(ch,ss)=0 do ch:=chr(ord(ch)+1);

w:=pos(ch,ss); ans:=ans+ch; delete(s,1,w); n:=n-w+1;

end;

t:=1; if length(ans)>1 then While ans[t]='0' do delete(ans,1,1);

writeln(ans);

end.

#5 傻B漫画@2011-04-29 23:45:00
回复 删除
贪心就好了
#6 562736924@2012-05-06 01:57:00
回复 删除
前面几个程序都挺麻烦的

var n,i,j:byte;

s:ansistring;

begin

readln(s);

readln(n);

i:=1;

while(n>0)and(i<length(s))do

if s[i]>s[i+1] then

begin

delete(s,i,1);dec(n);

if i>1 then dec(i)

end

else inc(i);

if n>0 then delete(s,length(s)-n+1,n);

while(s[1]='0')and(length(s)>0)do delete(s,1,1);

writeln(s)

end.

#7 崔自在@2012-05-23 04:30:00
回复 删除
program P257;

var

n:string;

i,s:longint;

begin

readln(n);

read(s);

while s>0 do

begin

i:=1;

while (i<length(n)) and (n[i]<=n[i+1])do

i:=i+1;

delete(n,i,1);

s:=s-1;

end;

while (length(n)>1)and(n[1]='0')do delete(n,1,1);

write(n);{kao}

end.

查看更多回复
提交回复