PASCAL函数递归程序相关2道编程题(十万火急)在线等

来源:百度知道 编辑:UC知道 时间:2024/06/14 13:12:08
我们只学到了函数递归,希望各位大虾用函数递归把题编出来~谢谢~O(∩_∩)O

1.求自然数前N个数的和(N由用户输入)

2.有如下一组有规律的数,请用递归计算出他的第十项的值
1 1 2 4 7 13 24 44 ……………………

第一题
var
n:integer;
function sss(k:integer):integer;
begin
if k=1 then sss:=1
else exit(k+sss(k-1));
end;
begin
readln(n);
write(sss(n));
end.
第二题function sss(n:integer):integer;
begin
if n>3 then exit(sss(n-1)+sss(n-2)+sss(n-3))
else
case n of
1:sss:=1;
2:sss:=1;
3:sss:=2;
end;
end;
begin
writeln(sss(10));
end.
已经简单得不能再简单了,所以回答几乎都千篇一律,请楼主看谁顺眼给谁分吧
另外,楼上的,你第二题主程序中直接f(10)了,读n干嘛,而且貌似n还没定义?……

program t1;
var
n:longint;
function f(n:longint):longint;
begin
if n=0 then f:=0
else f:=n+f(n-1);
end;

begin
read(n);
writeln(f(n));
end.

program t2;

function f(n:longint):longint;
begin
if n=1 then f:=1 else
if n=2 then f:=1 else
if n=3 then f:=2 else
f:=f(n-1)+f(n-2)+f(n-3);
end;

begin