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)
如对本文有什么疑问,请在下面写下留言,谢谢!
查看全文
相关阅读:
mysql连接error,Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection .....
ng-model绑定的是ng-option中的什么?
js的原型prototype究竟是什么?
git给log设置别名来快速查看友好的log信息
git常见使用场景总结
$http设置headers来实现IE不缓存url请求的资源
给sublime设置格式化代码的快捷键
HTTP权威指南 ·
《编写高质量代码:Web 前端开发修炼之道》 笔记与读后感
怎么删除git本地分支以及Bitbucket的远程分支?
原文地址:https://www.cnblogs.com/zxsoft/p/1029382.html
最新文章
阅读笔记13
关于SOA架构设计的案例分析
在eclipse中用java调用python报错 Exception in thread "main" ImportError: Cannot import site module and its dependencies
Linux下的jdk安装
jvm架构以及Tomcat优化
java代码导出数据到Excel、js导出数据到Excel(三)
无需上传附件到服务器,Servlet读取Excel(二)
java上传附件,批量下载附件(一)
多线程并发之原子性(六)
多线程之volatile关键字(五)
热门文章
多线程辅助类之CyclicBarrier(四)
傻瓜式的go modules的讲解和代码,及gomod能不能引入另一个gomod和gomod的use of internal package xxxx not allowed
HTML <pre> 标签
idea代码生成功能 live template
判断微信用户是否关注了公众号
Git远程推送文件太大的error解决
java与模式读后总结
js的语法糖?
drools的error:Jboss rule 6.4.0 Cannot find a default StatelessKieSession
解决gradle下载慢的问题
Copyright © 2011-2022 走看看