题目1205:N阶楼梯上楼问题(递推求解)

题目1205:N阶楼梯上楼问题

时间限制:1 秒

内存限制:128 兆

特殊判题:

提交:4547

解决:1836

题目描述:

N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)

输入:

输入包括一个整数N,(1<=N<90)。

输出:

可能有多组测试数据,对于每组数据,
输出当楼梯阶数是N时的上楼方式个数。

样例输入:
4
样例输出:
5
#include<iostream>
#include<stdio.h>
#include<queue>
#include<string>
#include<string.h>
#include<algorithm>
using namespace std;

long long F[91];

int main()
{
    F[1]=1;
    F[2]=2;
    for(int i=3; i<=90; i++)
    {
        F[i]=F[i-1]+F[i-2];
    }
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        printf("%lld\n",F[n]);
    }
    return 0;
}

时间: 2024-08-15 18:26:44

题目1205:N阶楼梯上楼问题(递推求解)的相关文章

九度OJ 1205 N阶楼梯上楼问题 (DP)

题目1205:N阶楼梯上楼问题 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:2817 解决:1073 题目描述: N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.(要求采用非递归) 输入: 输入包括一个整数N,(1<=N<90). 输出: 可能有多组测试数据,对于每组数据, 输出当楼梯阶数是N时的上楼方式个数. 样例输入: 4 样例输出: 5 基本思路: 走到第n阶时可能是从第n-1阶走一步到的,也可能是从n-2阶走两阶到的, 设F(n)为走到n阶的走法数量,则状态

1205 N阶楼梯上楼问题

/* 题目描述: N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.(要求采用非递归) 输入: 输入包括一个整数N,(1<=N<90). 输出: 可能有多组测试数据,对于每组数据, 输出当楼梯阶数是N时的上楼方式个数. 样例输入: 4 样例输出: 5 基本思路: 走到第n阶时,可能是从第n-1阶走一步到的,也可能是从n-2阶走两阶到的,设F(n)为走到n阶的种数,则F(n)=F(n-1)+F(n-2). 这是一个动态规划的问题,其实就是一个斐波那契数列. 1 2 3 5 8 13 .

计算机考研复试真题 N阶楼梯上楼问题

题目描述 N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.(要求采用非递归) 输入描述: 输入包括一个整数N,(1<=N<90). 输出描述: 可能有多组测试数据,对于每组数据, 输出当楼梯阶数是N时的上楼方式个数. 示例1 输入 4 输出 5 /*程序设计思想:类似于斐波拉契数列,采用迭代思想.*/ #include <iostream> using namespace std; long long F[100]; int main() { F[1] = 1; F[2

九度OJ—题目1205:N阶楼梯上楼问题 (非递归)

题目描述: N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.(要求采用非递归) 输入: 输入包括一个整数N,(1<=N<90). 输出: 可能有多组测试数据,对于每组数据, 输出当楼梯阶数是N时的上楼方式个数. 样例输入: 4 样例输出: 5 来源: 2008年华中科技大学计算机保研机试真题 答疑: 解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7928-1-1.html 基本思路: 走到第n阶时可能是从第n-1阶走一步到的,也可能

九度 题目1205:N阶楼梯上楼问题

题目描述: N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.(要求采用非递归) 输入: 输入包括一个整数N,(1<=N<90). 输出: 可能有多组测试数据,对于每组数据, 输出当楼梯阶数是N时的上楼方式个数. 样例输入: 4 样例输出: 5 分析:第n阶台阶的方法等于上到第n-1阶台阶的方法加上第n-2阶的台阶的方法之和,因为89阶的时候已经超过2的32次方,所以用long long int 代码如下: #include <stdio.h> long long int

题目1205:N阶楼梯上楼问题

题目描述: N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.(要求采用非递归) 输入: 输入包括一个整数N,(1<=N<90). 输出: 可能有多组测试数据,对于每组数据,输出当楼梯阶数是N时的上楼方式个数. 样例输入: 4 样例输出: 5 1 import java.util.Scanner; 2 3 4 public class Main{ 5 public static void main(String[]args){ 6 long[]F=new long[90]; 7 F[

算法之动态规划(递推求解一)

这篇博客主要讲的是动态规划入门,即动态规划的思想,并且再讲解动态规划的最简单的一个方法. 首先,什么是动态规划? 动态规划是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决.其实就是分解问题,分而治之.可能这样说大家都不太理解,其实这个有点类似于数学中的递推公式.来举一个简单的例子,看下边这个题: N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式. 这就是动态规划就简单的一个列子.拿到这个题,大家是不是都有点迷,这个到底怎么做?是不是没有思路,那

动态规划之递推求解

动态规划在B站上有个up主讲得不错,在此分享出来,如果对动态规划还比较懵逼的可以先去看看. https://www.bilibili.com/video/av16544031/?from=search&seid=11703697737879318733 https://www.bilibili.com/video/av18512769/?from=search&seid=6673249141547844536        利用递推解决问题,首先确定几个规模较小的问题答案.然后考虑如何由这

[编程题] N阶楼梯上楼问题

import sys for line in sys.stdin: N=int(line.split()[0]) d1=1 d2=2 if(N==1): print 1 continue elif(N==2): print 2 continue for i in xrange(N-2): d1, d2=d2, d1+d2 print d2 动态规划,入门题,属于 斐波那契数列 的变形, 没学过算法之前使用穷举法发现耗时较大.