zsx1 2011-09-13 19:18:00
点我顶贴
收藏
删除
program xi;
type
as=array[1..1000000] of longint;
var a,b:as;
i,x,m:longint;
begin
read(m);
for i:=1 to m*2 do
a[i]:=i;x:=0;
repeat
for i:=1 to m do begin
b[i*2-1]:=a[i+m];b[i*2]:=a[i];end;x:=x+1;
if(b[1]<>1)and(b[2]<>2) then begin
for i:=1 to m do begin
a[i*2-1]:=b[i+m];a[i*2]:=b[i];end;x:=x+1;end;
until((a[1]=1)and(a[2]=2))or((b[1]=1)and(b[2]=2));
write(x);
end.
#5 ahfy_zyt@2011-09-12 05:23:00
22375
回复
删除
我也一样
program xpwt;
var
s:int64;
n:longint;
i,j,k:longint;
a,b:array [1..20000] of longint;
begin
readln(n);
for i:=1 to 2*n do a[i]:=i;
s:=0;
b:=a;
repeat
s:=s+1;
for i:=1 to n do
begin
b[2*i-1]:=a[n+i];
b[2*i]:=a[i];
end;
a:=b;
until a[1]=1;
writeln(s);
readln;
end.