【算法】——递归:小白正在上楼梯,楼梯有n阶台阶,小白一次可以上1阶,2阶或者3阶,实现一个方法,计算小白有多少种走完楼梯的方式。
2024-09-05 08:14:17
分析:从最后一步分析,能有的情况有三种情况构成,写出如图所示的方程
//和斐波拉契相似
int void f(int n)
{
//考虑出口
if(n==) return ;//正常思路是返回0
if(n==) return ;//通过自己想可以得出只有1种方式
if(n==) return ;//通过自己想可以得到只有2种方法
return f(n-)+f(n-)+f(n-);//递归计算
}
但是在验算的时候发现当n=3的时候,结果为f(2)+f(1)+f(0)=3;不符合,通过思考应该是4种,所以把n==0时返回1
验算思路如图所示
最终代码:
//和斐波拉契相似
int void f(int n)
{
//考虑出口
if(n==) return ;//正常思路是返回0
if(n==) return ;//通过自己想可以得出只有1种方式
if(n==) return ;//通过自己想可以得到只有2种方法
return f(n-)+f(n-)+f(n-);//递归计算
//但是在验算的时候发现当n=3的时候,结果为f(2)+f(1)+f(0)=3;不符合,通过思考应该是4种,所以把n==0时返回1
}
最新文章
- lcov和gcov的使用错误
- IOS Animation-CAKeyframeAnimation例子(简单动画实现)
- 微信内置浏览器WebApp开发,踩坑 · Issue #31 · maxzhang/maxzhang.github.com · GitHub
- SharePoint自动化系列——Add/Remove “Hold” from items
- Winform Datagridview 点击headercolumn排序
- 最大公约数与欧几里得(Euclid)算法
- From MSI to WiX, Part 2 - ARP support, by Alex Shevchuk
- 最近因为textview高度问题疯了疯了疯了
- 权限系统设计实现MVC4 + WebAPI + EasyUI + Knouckout
- 模拟退火算法(SA)求解TSP 问题(C语言实现)
- jQuery选择器---层次选择器总结
- win10下装mysql-5.7.18-winx64
- C语言_指针变量的赋值与运算,很详细
- Apollo与ROS
- iOS开发之用到的几种锁整理
- jmeter链接数据库
- Netty 系列二(传输).
- 好用的js模板
- 028、HTML 标签3表单标签插入组件
- 设置cookies第二天0点过期