问一道PASCAL的题

来源:百度知道 编辑:UC知道 时间:2024/05/28 20:24:53
program exp1;
var i,j,k,n,,L0,L1,LK:Integer;
a :array [0..20] of integer;
begin
readln(n,k);
for i:=0 to n-1 do a[i]:=i+1;
a[n]:=a[n-1];L0:=n-1; Lk:=n-1;
for I:=1 to n-1 do
begin
L1:=L0-k; if (l1<0) then L1:=L1+n;
If (l1=Lk) then begin
A[L0]:=a[n]; Lk:=Lk-1; a[n]:=a[Lk]; l0:=lk
End;
Else
Begin
A[l0]:=a[l1];l0:=l1;
End;
End;
A[L0]:=a[n];
For I:=0 to n-1 do write(a[I]:40;
Writeln;
End.
输入:10 4
输出:
如果可能的话,最好加上一点简单的注解

这些这么多错,怎么可能运行嘛,先给你修改程序如下:

{$apptype console}
program exp1;
var i,j,k,n,L0,L1,LK:Integer;
a:array [0..20] of integer;
begin
readln(n,k);
for i:=0 to n-1 do a[i]:=i+1;
a[n]:=a[n-1];L0:=n-1; Lk:=n-1;
for I:=1 to n-1 do
begin
L1:=L0-k; if (l1<0) then L1:=L1+n;
If (l1=Lk) then begin
A[L0]:=a[n]; Lk:=Lk-1; a[n]:=a[Lk]; l0:=lk
End
Else
Begin
A[l0]:=a[l1];l0:=l1;
End;
End;
A[L0]:=a[n];
For I:=0 to n-1 do write(a[I]:40);
Writeln;
End.

输入:10 4
输出:
7 8
9 10
1 2
3 4
5