1樓:洛谷科技
vari,j,n:longint;
s:string;
begin
readln(s);
readln(n);
for i:= 1 to n do
begin
j:=1;
while (s[j+1]>=s[j]) and (j=』,而不是『>』}
inc(j);
delete(s,j,1);
while s[1]='0' do
delete(s,j,1);
end;
if s='' then write('0')else write(s);
end.
本題的思路還是貪心吧,每一次只要找到s[i]>s[i+1]且s[i+1]<=s[i+1]時,就直接把s[i]刪之,就能輕鬆解決。
沒問題,有問題請追問。
2樓:pascal真人
這是典型的雙向貪心,上面那人的方法只能過一半
for example,輸入 213 1,他會輸出21,而正確的是13。
搜尋每次去一個數字的最小數就行了
典型類似題目:石子打牛 自己搜吧
vars,s1,s2:string;
a1,a2,a3:longint;
begin
readln(s);
readln(a1);
a3:=length(s);
while a3-1>=a1 do
begin
s2:=copy(s,2,a3);
for a2:=2 to a3 do
begin
s1:=copy(s,1,a2-1)+copy(s,a2+1,a3);
if s2>s1 then s2:=s1;
end;
s:=s2;
a3:=length(s);
end;
while (s[1]='0') and (length(s)>1) do delete(s,1,1);
writeln(s);
end.
相信我,我的絕對是對的,記住我的標誌:哪兒有a1,a2等的出現,哪兒就有我!
3樓:匿名使用者
cfcccccccccccccccccccccccccccccccccccccccccc
Pascal問題 矩陣乘法,Pascal 矩陣乘法的完整過程?
vara,b,c,i,j,k longint x,y,f array 0.2000,0.2000 of longint begin read a read b read c for i 1 to a do for j 1 to b do read x i,j for i 1 to b do for ...
pascal郵票問題
你最後一步的prin寫錯了!應該這樣寫 var n,m,i,mm integer a array 1.100 of integer money array 0.10000 of boolean procedure print var max,i,j integer begin max 0 區域性變數...
pascal問題望解答,3個pascal問題,望解答!
第一題就是while3重,判斷。然後判斷它是不是素數 pascal程式設計問題,求大師解答!這個問題一點也不簡單!這涉及演算法 簡單的思路,就是對這n個數,做列舉,從1個,2個,3個,每個裡面又有不同的組合,這就是所謂的 冪集 如果n很大的時候,這個方法效率太低不可行 前面那位同學提及的揹包演算法就...