编Pascal程序解题

来源:百度知道 编辑:UC知道 时间:2024/06/21 23:45:10
编PASCAL程序解决问题(用函数或过程的递归做,不要用for循环)
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,只剩下一个桃子了。求第一天共摘了多少桃子。

function taozi(i:integer):integer;
begin
if i=0 then taozi:=1
else taozi:=(taozi(i-1)+1)*2;
end;
begin
writeln(taozi(10));
readln;
end.

function f(i:longint):longint;
begin
if i=0 then f:=1
else f:=(f(i-1)+1)*2;(递归到求后一天的桃子数)
end;
begin
writeln(f(10));
end.

function f(i:longint):longint;
begin
if i=0 then f:=1
else f:=(f(i-1)+1)*2;
end;
begin
writeln(f(10));
end.

他们的程序都要用递归的,费时间。
我给你个简单的。
var x,i:integer;
begin
x:=1;
for i:=1 to 9 do
begin
x:=2*(x+1);
end;
writeln(x);

end.

小小运用了一下数学知识,其实很容易就想到的~