1.用PL/0语言实现递归调用,此函数利用循环语句,若n不等于0,则进行下一步,即n=n-1,直到n=0输出。
代码中 n#0,表示n不等于0
var n;
procedure rec;
begin
if n#0 then
begin
write(n);
n:=n-1;
call rec;
end;
end;
begin
read(n);
call rec;
end.
代码中有多个end,只有主函数结束,end后为.非主函数结束end后为;。
2.计算sum=1!+2!+....+n!,n从控制台输入
var n, m, fact,sum;
{递归计算fact=m!}
procedure factorial;
begin
if m>0 then
begin
fact:=fact*m;
m:=m-1;
call factorial;
end;
end;
begin
{读入n}
read(n);
sum:=0;
while n>0 do
begin
m:=n;
fact:=1;
call factorial;
sum:=sum+fact;
n:=n-1;
end;
{输出 n!}
write(sum);
end.