【pascal】编写一个程序,生成1,2,3,4,5五个数字的全排列

第1个回答  2014-03-23
var
m,n:integer;
a:array[1..100]of integer;
fg:array[1..100]of boolean;

procedure print;
var
i:integer;
begin
for i:=1 to m do
write(a[i],' ');
writeln;
end;

procedure try(p:integer);
var
i:integer;
begin
if p>m then exit;
for i:=1 to n do
if not fg[i] then
begin
a[p]:=i;
fg[i]:=true;
if p=m then print
else try(p+1);
fg[i]:=false;
end;
end;

begin

fillchar(fg,sizeof(fg),0);
n:=5;
m:=5;
try(1);
end.
不行的话再来找我本回答被提问者和网友采纳
第2个回答  2014-03-25
{利用回溯法}
var t:array [1..5] of boolean;
a:array [1..5] of integer;
procedure px(i:integer);
var b:longint;
begin
if i>5 then {如果位数大于5,则输出}
begin
for b:=1 to 5 do
write(a[b]); {输出}
writeln;exit;
end;
for b:=1 to 5 do
if t[b]=true then {判断b数是否用过}
begin
t[b]:=false;a[i]:=b;
px(i+1);
t[b]:=true;a[i]:=0;
end;
end;
begin
fillchar(t,sizeof(t),true);
fillchar(a,sizeof(a),0);
px(1);
end.

【pascal】编写一个程序,生成1,2,3,4,5五个数字的全排列
fillchar(fg,sizeof(fg),0);n:=5;m:=5;try(1);end.不行的话再来找我

pascal排列组合教程
1.由数字1,2,3,4,5可以组成多少个三位数(各位上的数字允许重复)? ② 2.由数字0、1,2,3,4,5可以组成多少个三位数(各位上的数字允许重复)? ③ 3.由数字0,1,2,3,4,5可以组成多少个十位数字大于个位数字的两位数? 例4. 一个三位密码锁,各位上数字由0,1,2,3,4,5,6,7,8,9十个数字组成,可以...

pascal 求出1,2,。。。r个数的全排列(r<=10)
f(n)=n!懂吗?例如 f(3)= 3×2×1

PASCAL算法知识题~~高分~紧急~
比如,从A位置开始,逆时针方向取三个数000,然后再从B位置上开始取三个数001,接着从C开始取三个数010,...可以得到000,001,010,101,011,111,110,100共8个二进制数且都不相同。 程序说明: 以n=4为例,即有16个0,16个1,数组a用以记录32个0,1的排法,数组b统计二进制数出现的可能性。 程序清单 PROGRAM ...

阶乘数pascal 阶乘数与全排列
问题:请用阶乘数法生成1到n的全排列。[算法设计] 首先用最低位加一的方法依次产生所有的n位阶乘数,对任意一个n位阶乘数用上述方法求出其对应的排列。[参考程序] program ex5(input,output); const maxn=9; type arraytype=array[0..maxn] of integer; var i,j,n:integer; a,b,p:array...

求PASCAL的算法
Pascal程序: Program Exam1; Var i, a: byte; begin a:=10; {以第五位同学的棵数为递推的起始值} for i :=1 to 4 do {还有4人,递推计算4次} a:= a+2; {递推运算规律} writeln(’The Num is’, a); readln end.本程序的递推运算可用如下图示描述: 递推算法以初始{起点}值为基础,用...

第十四届全国青少年信息学奥林匹克联赛初赛
五.完善程序(前6空,每空3分,后5空,每空2分,共28分)。1.(找第k大的数)给定一个长度为1000000的无序正整数序列,以及另一个数n(1<=n<=1000000),接下来以类似快速排序的方法找到序列中第n大的数(关于第n大的数:例如序列{1,2,3,4,5,6}中第3大的数是4)Var a:array[1..1000000] of integer;n...

noip2010初赛答案
1.yyxy xx yyxy xyx xx xyx 2.12 3.18 四、阅读程序写结果(共4题,每题7分,共计28分)1.16 2.1 2 3 5 6 7 9 10 14 3.4 4.1 6 9 5 4 8 3 2 7 五、完善程序(第1空2分,其余10空,每空2.5分,共计27分)(说明:以下各程序填空可能还有一些等价的写法,各省...

急急急求2006年南海区青少年信息学奥林匹克竞赛初赛试题的答案
20. 已知6个结点的二叉树的先根遍历是1 2 3 4 5 6(数字为结点的编号,以下同),后根遍历是3 2 5 6 4 1,则该二叉树的可能的中根遍历是( ) A. 3 2 1 4 6 5 B. 3 2 1 5 4 6 C. 2 1 3 5 4 6 D. 2 3 1 4 6 5 二.问题求解(共2题,每题5分,共计10分) 1.(寻找假币) 现有...

求助: pascal 排列与组合是常用的数学方法,其中组合就是从n个元素中...
q:array[0..mix] of 0..1;a:array[0..mix] of integer;procedure print;var i,j:integer;begin for i:=1 to r do write(a[i]:3); \/\/ 题意如此往往容易忽视.writeln;end;function panding(l,m:integer):boolean;var i,j:integer;begin panding:=true;for i:=1 to m-1 do begi...

相似回答