一个超级难的free pascal循环问题

题目是:某人上台阶,一步可以走一个台阶,也可以走两个台阶,还可以走三个台阶。问他走到10层台阶时共有多少种不同走法?... 题目是:某人上台阶,一步可以走一个台阶,也可以走两个台阶,还可以走三个台阶。问他走到10层台阶时共有多少种不同走法? 展开
 我来答
百度网友6f1b784
2009-07-08 · TA获得超过472个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:163万
展开全部
用F[I]表示上到第I级台阶时的方法数
因为F[I]只能由F[I-1],F[I-2],F[I-3]三种状态到达,所以递推式
F[I]=F[I-1]+F[I-2]+F[I-3]

Var F:Array[0..10]of Longint;
I:Longint;
Begin
F[0]:=1;
F[1]:=1;
F[2]:=2;
For I:=3 to 10 do
F[I]:=F[I-1]+F[I-2]+F[I-3];
Writeln(F[10]);
End;
oierRP
2009-07-04 · 超过27用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:0
展开全部
本题递推
var f:array[-2..10] of longint;
i:longint;
begin
f[0]:=1;
for i:=1 to 10 do
f[i]:=f[i-1]+f[i-2]+f[i-3];
writeln(f[10]);
end.
从1层顺推到10层,每层满足方案数为i-1层、i-2层、i-3层方案数和。
f[0]:=1;为初始化
答案为274吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-07-12
展开全部
答案为斐波那契数列
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友96edac7
2009-07-13 · TA获得超过541个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:219万
展开全部
楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,还可以走三个台阶。编一程序计算共有多少种不同的走法.

设n阶台阶的走法数为f(n)

显然有

1 n=1

f(n)={ 2 n=2

3 n=3

f(n-1)+f(n-2)+f(n-3) n>3

可编程序如下:

program louti;

var n:integer;

function f(x:integer):integer;

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

write('n=');read(n);

n:=10;
writeln('f(',n,')=',f(n))
end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式