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)
如对本文有什么疑问,请在下面写下留言,谢谢!
查看全文
相关阅读:
Count and Say leetcode
Find Minimum in Rotated Sorted Array II leetcode
Find Minimum in Rotated Sorted Array leetcode
Search in Rotated Sorted Array II leetcode
search in rotated sorted array leetcode
Substring with Concatenation of All Words
Subsets 子集系列问题 leetcode
Sudoku Solver Backtracking
Valid Sudoku leetcode
《如何求解问题》-现代启发式方法
原文地址:https://www.cnblogs.com/zxsoft/p/1029382.html
最新文章
U-Boot 内核 (一)
Centos 搭建LAMP环境
linux apache添加多站点配置(Ubuntn和Centos)
android学习——环境的搭建
微信开发之解绑设备通知
JavaScript 动态添加div 绑定点击事件
win7下Apache2.4安装、配置及服务自启动
DBF导入到Oracle数据库
EBS收单方/收货方
EBS查询用户客户化的文件配置
热门文章
EBS R12 查询EBS用户相关SQL
EBS查找运行请求时间,参数等
EBS导出键弹性域
EBS R12.1.3服务器管理
Oracle查询死锁&杀死会话
Oracle索引状态查询&索引重建
为了提高查询效率而做分表心得
Combination Sum
欧几里德算法(辗转相除法)
求全排列(数组有重复元素和数组无重复元素) 回溯 递归
Copyright © 2011-2022 走看看