level 4
全排列问题(Form.PAS) 【问题描述】 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。 【输入格式】 n(1≤n≤9) 【输出格式】 由1~n组成的所有不重复的数字序列,每行一个序列。 【输入样例】Form.in 3 【输出样例】Form.out 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 组合的输出(Compage.PAS) 【问题描述】 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r<=n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。 现要求你用递归的方法输出所有组合。 例如n=5,r=3,所有组合为: l 2 3 l 2 4 1 2 5 l 3 4 l 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5 【输入】 一行两个自然数n、r(1
2008年08月11日 11点08分
1
level 1
全排列的:
var n:longint;
a:array[1..10] of longint;
f:array[1..10] of boolean;
procedure pl(i:integer);
var j:longint;
begin
if i>n then
begin
for j:=1 to n do
write(a[j],' ');
writeln;
end
else
for j:=1 to n do
begin
if f[j]=false then
begin
a[i]:=j;
f[j]:=true;
pl(i+1);
f[j]:=false;
end;
end;
end;
begin
read(n);
pl(1);
end.
var n:longint;
a:array[1..10] of longint;
f:array[1..10] of boolean;
procedure pl(i:integer);
var j:longint;
begin
if i>n then
begin
for j:=1 to n do
write(a[j],' ');
writeln;
end
else
for j:=1 to n do
begin
if f[j]=false then
begin
a[i]:=j;
f[j]:=true;
pl(i+1);
f[j]:=false;
end;
end;
end;
begin
read(n);
pl(1);
end.
2014年06月30日 08点06分
3
当年不懂事,别翻我帖子T T
2014年06月30日 12点06分
level 4
= =你们没有帖子看了吗一定要翻这个帖子!!
好多年的事情了,LZ也好怀念以前的日子= =现在都大学了
2014年07月06日 07点07分
8