【面试题】N阶台阶的走法种数问题(分支思想)
来源:互联网 发布:销巴世界淘宝返利 编辑:程序博客网 时间:2024/05/20 18:18
【面试题】N阶台阶的走法种数问题(分支思想)
【面试题】在一些技术面试中,经常会有N阶台阶每次走一步或两步,问有多少种走法的题目,实际上就是斐波那契数列算法,在此本人通过分支思想进行统计方法数。
一、题目重述
总共有100阶台阶,每次走一步或两步,请问共有几种走法?
二、解决方案
可以模拟树分支的思想,通过for循环将每次选择一步或者两步的走法以分支形式分开,并将剩下的阶数(stair - i)作为参数进入递归,当stair为0,即到分支末,统计分支数,即可得方法数。
三、代码实现
#include <iostream>using namespace std;const int Stair = 100; //台阶数static int num = 0; //统计方法数void Add_up(int stair){ if (0 == stair || 1 == stair)//当stair为0,表示已到分支末;当stair为1,为避免stair - i出现小于0的情况,在此特意选出来 { num++; return; } for (int i = 1; i <= 2; i++)//每次可选择走一步或两布,根据选择不同划出分支 Add_up(stair - i);//减去所走步数,进入新的递归} void main() { Add_up(Stair); cout << "共有" << num << "种走法" << endl;}
四、结束语
类似可以走一步或两步或三步的题目,可以参考上述代码修改for循环 i 的最大值和注意(stair - i)的值小于0的情况即可。
希望对大家有帮助。
0 0
- 【面试题】N阶台阶的走法种数问题(分支思想)
- Python实现N阶台阶的走法问题
- 腾讯面试题:走台阶
- 爬楼梯问题,一共有n阶台阶,每次你可以走1或者2个台阶,到达顶端一共有多少种不同的走法?
- LUA面试题:楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序列出每一种走法。
- 腾讯面试题:走到50台阶的可能数(台阶可以一次走一阶或者二阶),三种方式实现
- 面试题整理-台阶问题
- 【面试题】N级台阶(比如100级),每次可走1步或者2步,求总共有多少种走法?
- 走台阶问题,整数的分解问题
- 走台阶的问题的心得
- 走台阶问题的动态规划
- N阶台阶,每次只能走一个台阶或者两个台阶,求一共有多少种走法?
- 走台阶问题算法
- 走台阶问题(转)
- 走台阶问题
- 走台阶问题
- 走台阶问题
- 走台阶问题
- 关于Monkey的一切都在这里
- 鸟哥的Linux私房菜基础篇笔记--2
- 织梦cms常用标签
- 什么是软件工程
- JavaScript学习总结(八)正则表达式
- 【面试题】N阶台阶的走法种数问题(分支思想)
- 搭建Opendaylight控制器环境注意事项
- Swift
- LeetCode-Add Two Numbers
- vue计算属性
- 未来12个趋势
- Error:Execution failed for task ':app:prepareDebugAndroidTestDependencies'. > Dependency Error. See
- 设计模式——装饰者模式
- 网易编程题:概率论方面