zoukankan
html css js c++ java
上L层楼梯有几种上法?
某楼梯有L层台阶,上楼梯可以一次迈一层,也可以一次迈两层。那么走完这L层台阶共有几种走法?
用递归的思路分析:
1.如果只有一层楼梯,那么自然只有一种走法。
2.如果有两层楼梯,那么有两种走法。(一种是一次迈一层,另一种是一次把两层全迈上去)
3.如果有L层楼梯,那么,先走一层,剩下的层数的走法数。加上先走两次,剩下的层数的走法数的和。就是L层的总共走法。
于是假设存在某函数f(x),参数x表示层数,返回值是走x层的总共走法数。那么可以知道:
f(1)=1; ①
f(2)=2; ②
f(x)=f(x-1)+f(x-2); ③
综合1,2,3。递归函数就可以写出来了。
C#实现:
static
void
Main(
string
[] args)
{
int
l
=
0
;
while
(
true
)
{
Console.Write(
"
L=
"
);
string
str
=
Console.ReadLine();
l
=
int
.Parse(str);
if
(l
==
0
)
break
;
Console.WriteLine(CalcStairs(l));
}
}
static
int
CalcStairs(
int
L)
{
if
(L
==
1
)
return
1
;
if
(L
==
2
)
return
2
;
return
CalcStairs(L
-
1
)
+
CalcStairs(L
-
2
);
}
张旋(zxsoft)
如对本文有什么疑问,请在下面写下留言,谢谢!
查看全文
相关阅读:
HDU 5441 离线处理 + 并查集
[转载]HDU 3478 判断奇环
POJ 1637 混合图的欧拉回路判定
[转载] 一些图论、网络流入门题总结、汇总
UVA 820 --- POJ 1273 最大流
[转载 ]POJ 1273 最大流模板
POJ 3041 -- 二分图匹配
2014西安现场赛F题 UVALA 7040
UVA 12549
割点、桥(一点点更新)
原文地址:https://www.cnblogs.com/zxsoft/p/1029382.html
最新文章
java——String的那边破事
设计模式——模板方法设计模式
对Java的Map的Value字段进行排序
正则表达式中分组功能高级用法
mysql——获取所有table名和table字段名。
[复试机试]c++读取/写入文本文件
[复试机试]已知中序遍历和后序遍历,求前序遍历
[复试机试]已知中序表达式,求先序表达式
MyEclipse 快捷键
IDEA 的 git 使用
热门文章
U盘又中毒了,隐藏文件如何显示
NYOJY 491 幸运三角形
linux系统中的时间
【转载】整数拆分 动态规划
linux编译c文件
Java记事本编译
ZOJ 3911 线段树
UVA 572 油田连通块-并查集解决
HDU 4920 居然会超时
UVA 1151二进制枚举子集 + 最小生成树
Copyright © 2011-2022 走看看