pascal 递归的方法做问题1、用递归的方法求1+2+3+……+N的值。2、用递归函数输出斐波那契数列第n项。0,1,

pascal 递归的方法做问题
1、用递归的方法求1+2+3+……+N的值。
2、用递归函数输出斐波那契数列第n项。0,1,1,2,3,5,8,13……
3、输入一个非负整数,递归方法输出这个数的倒序数。例如输入123,输出321。
4、用递归算法将数组A中的N个数倒序输出。
5、用递归方法求N个数中的最大数及其位置。
6、用递归算法将一个十进制数X转换成任意进制数M(M<=16)。
其中第3个 第6个 较为重要 其他可以省略……
小雨浩 1年前 已收到1个回答 举报

逆风的小丑 幼苗

共回答了18个问题采纳率:100% 举报

我直接写出最重要的把,只写子程序好了。
3:
procedure f(x,s:longint);
begin
if x=0 then begin writeln(s);exit;end;
f(x div 10,s*10+x mod 10);
end;
主程序中: f(x,0);(x是要颠倒的数);
6:
procedure f(x,s,t:longint);
begin
if t=0 then begin writeln(s);exit;end;(我直接用颠倒数字,为了防止最后的零不输出,我就设定了位数)
f(x div 10,s*10+x mod 10,t-1);
end;
procedure f1(x,s:longint);
var
t:longint;
begin
if x=0 then begin f(s,0,t);end;
t:=t+1;
f(x div m,s*10+(x mod m));
end;
主程序中:readln(m);(进制);f1(x,0);(x是要换进制的数);
如果用数组的话可以更好一点,我这样直接

1年前

8
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 1.288 s. - webmaster@yulucn.com