pascal递归习题,给我!
来源:百度知道 编辑:UC知道 时间:2024/06/18 13:14:06
RT,求pascal递归习题,要附上标准答案.
感激不尽!
感激不尽!
感激不尽!
感激不尽!
1.汉诺塔问题(十分经典)
2.八(N)皇后问题
3.全排列
4.马走日(马遍历棋盘)问题
要答案的话,请说一声
例1计算n!可用递归公式如下:
1 当 n=0 时
fac(n)={n*fac(n-1) 当n>0时
可编写程序如下:
program fac2;
var
n:integer;
function fac(n:integer):real;
begin
if n=0 then fac:=1 else fac:=n*fac(n-1)
end;
begin
write('n=');readln(n);
writeln('fac(',n,')=',fac(n):6:0);
end.
例2 楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序计算共有多少种不同的走法.
设n阶台阶的走法数为f(n)
显然有
1 n=1
f(n)={2 n=2
f(n-1)+f(n-2) n>2
可编程序如下:
program louti;
var n:integer;
function f(x:integer):integer;
begin
if x=1 then f:=1 else
if x=2 then f:=2 else f:=f(x-1)+f(x-2);
end;
begin
write('