阿克曼(Ackmann)函数A(x,y)中,x,y定义域是非负整数,函数值定义为:
写出计算Ack(m,n)的递归算法程序
var
m,n:integer;
function ack(m,n:integer):integer;
begin
if m=0 then exit(n+1)
else if n=0 then exit(ack(m-1,1))
else exit(ack(m-1,ack(m,n-1)));
end;
begin
write('M : ');
readln(m);
write('N : ');
readln(n);
writeln(ack(m,n));
readln;
end.
某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。 基本形式:D[1]=0;d[2]=1 递归式:d[n]= (n-1)*( d[n-1] + d[n-2])
var
n:integer;
function let(n:integer):integer;
begin
if n=1 then exit(0);
if n=2 then exit(1);
exit((n-1)*(let(n-1)+let(n-2)));
end;
begin
write('N: ');
readln(n);
writeln(let(n));
readln;
end.
有52张牌,使它们全部正面朝上,第一轮是从第2张开始,凡是2的倍数位置上的牌翻成正面朝下;第二轮从第3张牌开始,凡是3的倍数位置上的牌,正面朝上的翻成正面朝下,正面朝下的翻成正面朝上;第三轮从第4张牌开始,凡是4的倍数位置上的牌按上面相同规则翻转,以此类推,直到第一张要翻的牌超过52为止。统计最后有几张牌正面朝上,以及它们的位置号。
var
a:array[1..52] of inetger;
n,i:integer;
procedure card(x:integer;a:array[1..52] of integer);
var
s:integer;
begin
s:=x;
while s<=52 do
begin
a[s]:=a[s]+1;
s:=s+x;
end;
end;
begin
i:=0;
for n:=1 to 52 do a[n]:=1;
for n:=1 to 52 do card(n,a);
for n:=1 to 52 do
begin
if (a[n] mod 2<>0) then
begin
write(n,' ');
i:=i+1;
end;
end;
writeln;
write(i);
readln;
end.
猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉的一半,又多吃了一个。以后每天早上都吃掉了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。
function mon(n:integer):integer;
begin
if n=10 then exit(1)
else exit(2*(mon(n+1)+1));
end;
begin
write(mon(1));
readln;
end.
斐波那切数列 【问题描述】 斐波那切数列0,1,1,2,3,5,8,13,21,34,55……从第三项起,每一项都是紧挨着的前两项的和。写出计算斐波那切数列的任意一个数据项递归程序。 【输入格式】 输入所求的项数。 【输出格式】 输出数据项的值。 【输入样例】fbi.in 10 【输出样例】fbi.out 34
var
n:integer;
function num(n:integer):integer;
begin
if n:=1 then exit(0);
if n:=2 then exit(1);
exit(num(n-1)+num(n-2));
end;
begin
assign(input,'fbi.in');
assign(output,'fbi.out');
reset(input);
rewrite(output);
read(n);
write(num(n));
close(input);
close(output);
end;
求N!的值 【问题描述】 用递归算法,求N!的精确值(N以一般整数输入)。 【输入样例】ni.in 10 【输出样例】ni.out 10!=3628800
var
n:integer;
function jc(n:integer):int64;
begin
if n=1 then exit(1)
else exit (jc(n-1)*n);
end;
begin
write('Enter n: ');
readln(n);
writeln(jc(n));
readln;
end.
Pascal:递归递推算法,习题
https://Mundnaity.moe/post/pascal_chap_A4_ex