上台阶问题(递归,DFS)
题目
一共39层台阶。如果我每一步迈上1个台阶或者两个台阶,先迈左脚,再迈右脚,然后左右交换,最后一步迈右脚,也就是一共要走偶数步,那么,上完39级台阶,有多少种不同的方法?
思路
采用递归的思想,边界条件就是台阶上数小于0,返回0;台阶上等于0,而且步数恰好是偶数步,那么说明走完了所有台阶,方法加1.
代码
#include<stdio.h>
#include<stdlib.h>
int count_way = 0;
int Sum(int left_stair, int step)
{
	if(left_stair < 0)
		return 0;
	if(left_stair == 0 && step % 2 == 0)
	{
		count_way++;
		return 0;
	}
	Sum(left_stair - 1, step+1);//一次迈一层台阶
	Sum(left_stair - 2, step+1);//一次迈两层台阶 
 } 
int main(void)
{
	int n;
	printf("enter n:");
	scanf("%d", &n);
	Sum(n, 0);
	printf("Total = %d\n", count_way);
	return 0;
 }

上台阶问题(递归,DFS)的更多相关文章
- POJ 1780 Code(欧拉回路+非递归dfs)
		
http://poj.org/problem?id=1780 题意:有个保险箱子是n位数字编码,当正确输入最后一位编码后就会打开(即输入任意多的数字只有最后n位数字有效)……要选择一个好的数字序列,最 ...
 - 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)
		
1. 题目描述 /** 请实现一个函数,用来判断一颗二叉树是不是对称的. 注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的 */ 2. 递归 思路: /** 1.只要pRoot.left和 ...
 - 递归 dfs 记忆化搜索 动态规划
		
今天做洛谷P1434 [SHOI2002]滑雪 的时候仔细想了想记忆化搜索 现在总结一下 为了描述问题的某一状态,必须用到该状态的上一状态,而描述上一状态,又必须用到上一状态的上一状态……这种用自已来 ...
 - (二叉树 递归 DFS) leetcode 100. Same Tree
		
Given two binary trees, write a function to check if they are the same or not. Two binary trees are ...
 - B. Nirvana Codeforces Round #549 (Div. 2) (递归dfs)
		
---恢复内容开始--- Kurt reaches nirvana when he finds the product of all the digits of some positive integ ...
 - 部分和问题 南阳acm1058(递归+dfs)
		
部分和问题 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 给定整数a1.a2........an,判断是否可以从中选出若干数,使它们的和恰好为K. 输入 首先, ...
 - HDU1016【简单递归.DFS】
		
题意:一个环,相邻相加是素数. 思路: 直接深搜就好了.. output limit exceed 了好几发... 因为那个while里面的scanf前面的"~" 后来搜了outp ...
 - 深度优先搜索(DFS)递归形式改为非递归形式
		
DFS将递归改为非递归这个方法的需求来自于一道三维积木组合的题目,还在苦苦调试中,暂且不提. 普通的认识对于递归向非递归的转化无非是使用栈,但是结合到深度搜索如何将栈很好利用,如何很好保存现场,都不是 ...
 - (N叉树 DFS 递归 BFS) leetcode 559. Maximum Depth of N-ary Tree
		
Given a n-ary tree, find its maximum depth. The maximum depth is the number of nodes along the longe ...
 - 数据结构作业——图的存储及遍历(邻接矩阵、邻接表+DFS递归、非递归+BFS)
		
邻接矩阵存图 /* * @Author: WZY * @School: HPU * @Date: 2018-11-02 18:35:27 * @Last Modified by: WZY * @Las ...
 
随机推荐
- 2019.01.13 bzoj4137: [FJOI2015]火星商店问题(线段树分治+可持久化01trie)
			
传送门 题意:序列上有nnn个商店,有两种事件会发生: sss商店上进购标价为vvv的一个物品 求编号为[l,r][l,r][l,r]之间的位置买ddd天内新进购的所有物品与一个数xxx异或值的最大值 ...
 - 2018.10.31 NOIP模拟 一串数字(数论+贪心)
			
传送门 把每一个数aaa质因数分解. 假设a=p1a1∗p2a2∗...∗pkaka=p_1^{a_1}*p_2^{a_2}*...*p_k^{a_k}a=p1a1∗p2a2∗...∗pkak ...
 - 2018.06.26「TJOI2018」数学计算(线段树)
			
描述 小豆现在有一个数 xxx ,初始值为 111 . 小豆有 QQQ 次操作,操作有两种类型: 111 $ m$ : x=x×mx=x×mx=x×m ,输出 xxx modmodmod MMM : ...
 - pat1079+1086+1090+1094(树的遍历)感想
			
今天做了这4道题,虽然大部分以前做过,但还是有些知识掌握不全. 总结一下所用的树的知识及解决方法 (1)非二叉树的遍历: 非二叉树就是图,所以它的存储结构类似邻接表,c++提供了vector数组可以很 ...
 - Java基础之多线程没那么复杂!
			
多线程的引入 1.什么是多线程 线程是程序执行的一条路径,一个进程中可以包含多条线程;多线程并发执行可以提高程序的效率</br> 2.进程和线程之间的关系 操作系统可以同时执行多个任务,每 ...
 - 设置vue启动项目后默认显示的页面
			
通过配置路由,可以设置vue项目启动后默认显示的页面.路由的path设置为path:"/",启动项目后就会显示默认的组件页面. import Vue from 'vue' impo ...
 - JMeter测试工具.jmx文件详解
			
摘要:了解.jmx文件格式类型,对jmeter二次开发与拓展有很大的帮助,当然也可以利用python对其进行一些处理(生成一些测试用例,对jmx文件进行 ”增删改查“). 一个完整用例的.jmx文件基 ...
 - vue的cli中引入css文件
			
在public文件中创建一个文件夹css,放进reset.css 在main.js中引入即可 import '../public/css/reset.css'就可以啦
 - Memory Allocation Error
			
Memory allocation error happened when I tried to install MySQL 5.7.13 in my server, which has 2G mem ...
 - 关于自定义脚本rc.local里开机不启动的问题--以tomcat和perl相关的脚本为例
			
本文将自己遇到的一些自定义脚本加入开机启动项却不成功的问题加以说明,花费了我很长时间才得以解决,当然也多谢了自己朋友的帮忙,正是因为他们的提醒,最后才找到了解决的办法,谢谢他们!!!! 系统是cent ...