NOI-OJ 2.2 ID:3089 爬楼梯
整体思路
这是一个典型的递归型问题:
- 临界点:如果只有1级台阶,有1种走法(一次一步);如果有2级台阶,则有2种走法(一次一步或一次两步)
- 递归方法,对于n级台阶,如果第一次走1步,还剩n-1级台阶,n-1级台阶的走法有f(n-1)步,如果第一次走2步,还剩n-2级台阶,n-1级台阶的走法有f(n-2)步,故得到递归关系,f(n)=f(n-1)+f(n-2)
本题在输入数据时和之前的题目稍有不同,并没有给出一个明确的N值表示输入数据的数量或者行数,故可以使用scanf函数循环读取、函数求值、输出。当输入结束时会得到一个EOF(End Of File,-1),即文件结束符。这是循环的终止条件。
在DevC++中输入EOF的方法是“Ctrl+Z”,这样循环方能终止。
例程
#include<iostream>
using namespace std;
int nMethods(int n){
if(n==1) return 1; //临界值
if(n==2) return 2; //临界值
return nMethods(n-1)+nMethods(n-2); //递归调用
}
int main(){
int n;
while(scanf("%d", &n)!=EOF) //注意循环终止条件,也可以将EOF写为-1
cout<<nMethods(n)<<endl;
return 0;
}
NOI-OJ 2.2 ID:3089 爬楼梯的更多相关文章
- 递归--练习1--noi3089爬楼梯
递归--练习1--noi3089爬楼梯 一.心得 根据输入,是要写连续输入多个值的程序 二.题目 3089:爬楼梯 总时间限制: 1000ms 内存限制: 65536kB 描述 树老师爬楼梯,他可 ...
- Jarvis OJ - 爬楼梯 -Writeup
Jarvis OJ - 爬楼梯 -Writeup 本来是想逆一下算法的,后来在学长的指导下发现可以直接修改关键函数,这个题做完有种四两拨千斤的感觉,记录在这里 转载请标明出处:http://www.c ...
- LeetCode(70): 爬楼梯
Easy! 题目描述: 假设你正在爬楼梯.需要 n 步你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 ...
- Leecode刷题之旅-C语言/python-70爬楼梯
/* * @lc app=leetcode.cn id=70 lang=c * * [70] 爬楼梯 * * https://leetcode-cn.com/problems/climbing-sta ...
- [LeetCode] 70. Climbing Stairs 爬楼梯问题
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
- Leet爬楼梯问题
假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2输出: 2解释: 有两种方 ...
- lintcode: 爬楼梯
题目: 爬楼梯 假设你正在爬楼梯,需要n步你才能到达顶部.但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? 样例 比如n=3,中不同的方法 返回 3 解题: 动态规划题目,同时还是有顺序 ...
- 爬楼梯问题-斐波那契序列的应用.md
N 阶楼梯,一次可以爬1.2.3...n步,求爬楼梯的种类数 /** * 斐波那契序列 */ public class ClimbingStairs { // Sol 1: 递归 // 递归 公式:F ...
- 2017广东工业大学程序设竞赛C题爬楼梯
Description 小时候,我只能一阶一阶得爬楼梯, 后来,我除了能一次爬一阶,还可以一次爬两阶, 到现在,我最多一次可以爬三阶. 那么现在问题来了,我想爬上n层楼,相邻楼层之间有一段楼梯,虽然我 ...
随机推荐
- Arch Linux安装Firefox 火狐中文版
很多人刚安装好系统之后,刚开始内置的浏览器是火狐的英文版,很多时候因为需要账号同步的原因需要国内版本的火狐浏览器,这个时候我们应该怎么操作呢? 其实也非常的简单 首先我们 输入命令 pacman -S ...
- PowerDesigner表设计中的P F M分别代表什么意思?
版本 如下图中的P.F.M代表什么意思呢? P即primary,主键的意思 F即foreign key,外键的意思 M即mandatory,强制不可为空的意思
- LeetCode算法题-Array Partition I(Java实现)
这是悦乐书的第262次更新,第275篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第129题(顺位题号是561).给定一个2n个整数的数组,你的任务是将这些整数分组为n对 ...
- nmap比较详细的使用方法
nmap 信息收集工具 -sP 192.168.1.0/24 区域网内存活主机扫描 -O 192.168.1.1 获取操作系统 nmap -sS -sV baidu.com -sS 使 ...
- vue 对象提供的属性功能、通过axio请求数据(2)
1 Vue对象提供的属性功能 1.1 过滤器 过滤器,就是vue允许开发者自定义的文本格式化函数,可以使用在两个地方:输出内容和操作数据中. 1.1.1 使用Vue.filter()进行全局定义(全局 ...
- 先vue-cli,再nuxt试试路由
https://segmentfault.com/a/1190000007933349
- 21 python 初学(json pickle shelve)
json: # _author: lily # _date: 2019/1/19 import json my_dict = {'name': 'lily', 'age': 18} f = open( ...
- day23--面向对象之封装、继承、多态
面向对象的三大特性: 封装: 在类的内部(class内部)可以由属性和方法,外部代码可以通过直接调用实例变量的方法来操作数据,这样就隐藏了内部的逻辑,但是外部还是可以直接修改实例的属性,因此当需求中存 ...
- yidiandian
hzwer libreoj (需要拿新版的打开)
- Please check that your locale settings问题
问题描述: perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: L ...