不是VIP会员,不能显示答案

题目解答

题目:
var a: string; n: integer;
procedure getnext(var str: string);
var l, i, j, k: integer; temp: char;
begin
l := length(str); k := l - 1;
while (k >= 1) and (str[k] > str[k + 1]) do dec(k);
i := k + 1;
while (i <= l) and (str[i] > str[k]) do inc(i);
temp := str[k]; str[k] := str[i - 1]; str[i - 1] := temp;
for i := l downto k + 1 do
for j := k + 1 to i - 1 do
if str[j] > str[j + 1] then begin
temp := str[j]; str[j] := str[j + 1];str[j + 1] := temp;
end;
end;
begin
read(a); read(n);
while n > 0 do begin
getnext(a); dec(n);
end;
write(a);
end.
输入:NOIP 3
输出:NPOI
考点:
分析:
解答:
评论:
老师: