首页 > 试题广场 >

var a: string; n: integ...

[填空题]
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
输出:1

这道题你会答吗?花几分钟告诉大家答案吧!