5、N 个人进入会场开会(场内只有 N 个坐位), 本应对号入坐,可是N个人全都坐错了位置, 编程输出全都坐错了位置的所有可能坐法,并累计总数,N由键盘输入。
5、N 个人进入会场开会(场内只有 N 个坐位), 本应对号入坐,可是N个人全都坐错了位置, 编程输出全都坐错了位置的所有可能坐法,并累计总数,N由键盘输入。
输入:N
输出:所有可能的总数(提示:考虑下排列组合)
program site;
var n, s : integer;
a : array[1 .. 50] of integer;
procedure sit(i : integer);
var ii, jj, kk : integer;
begin
for ii := 1 to n do
begin
for jj := 1 to i do
if (a[jj] = ii) or (ii = i) then
break;
if (a[jj] <> ii) and (ii <> i) then
begin
a[i] := ii;
if i = n then
begin
s := s+1;
for kk := 1 to n do
write(a[kk], ' ');
writeln;
end
else
sit(i+1);
a[i] := 0;
end;
end;
end;
begin
readln(n);
writeln;
sit(1);
writeln;
writeln(s);
readln;
end.
输入:N
输出:所有可能的总数(提示:考虑下排列组合)
program site;
var n, s : integer;
a : array[1 .. 50] of integer;
procedure sit(i : integer);
var ii, jj, kk : integer;
begin
for ii := 1 to n do
begin
for jj := 1 to i do
if (a[jj] = ii) or (ii = i) then
break;
if (a[jj] <> ii) and (ii <> i) then
begin
a[i] := ii;
if i = n then
begin
s := s+1;
for kk := 1 to n do
write(a[kk], ' ');
writeln;
end
else
sit(i+1);
a[i] := 0;
end;
end;
end;
begin
readln(n);
writeln;
sit(1);
writeln;
writeln(s);
readln;
end.


浙公网安备 33010602011771号