一个超级难的free pascal循环问题
题目是:某人上台阶,一步可以走一个台阶,也可以走两个台阶,还可以走三个台阶。问他走到10层台阶时共有多少种不同走法?...
题目是:某人上台阶,一步可以走一个台阶,也可以走两个台阶,还可以走三个台阶。问他走到10层台阶时共有多少种不同走法?
展开
4个回答
展开全部
用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;
因为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;
展开全部
本题递推
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吧
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
展开全部
答案为斐波那契数列
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼梯有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.
设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.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询