首页 > 试题广场 >

跳台阶

[编程题]跳台阶
  • 热度指数:16295 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

数据范围:
要求:时间复杂度: ,空间复杂度:

输入描述:
本题输入仅一行,即一个整数 n


输出描述:
输出跳上 n 级台阶有多少种跳法
示例1

输入

2

输出

2

说明

青蛙要跳上两级台阶有两种跳法,分别是:先跳一级,再跳一级或者直接跳两级。因此答案为2        
示例2

输入

7

输出

21
头像 Sousey
发表于 2022-02-23 15:12:43
青蛙跳台阶 划分子问题: 一层:1 二层:11 2 三层:111 12 四层:1111 112 22 五层:11111 1112 122 ...... 仔细想一想: 从三层楼开始: 不管是有几层楼梯,都是要选择先跳一层还是先跳两层 假如我先跳一层,子问题就变成了f(n-1)个跳法的问题, 假如我先 展开全文
头像 数据结构和算法
发表于 2022-02-18 18:31:41
这题和前面 DP1 斐波那契数列基本上是一样的,不同的是,这里斐波那契数列的起始项是1,2,3,5,8,我们把它改一下即可 解法一 题中要求的是 空间复杂度 O(1) ,很明显使用递归是行不通的,我们先改成非递归的看一下(这种复杂度也是不行的,我们先看一下代码) import java.util.S 展开全文
头像 Liujiming123
发表于 2022-05-17 21:05:12
因为是 dp ,所以先来划分子问题: 假设跳 nnn 个台阶的跳法总数为 fnf_nfn​ , 那么 f1=1f_1=1f1​=1 (跳 111 阶只有一种方法),f2=2f_2=2f2​=2(跳 222 阶有两种方法:1 1 和 2 )。 尝试列出几个 nnn : f1=1f_1=1f1​=1 ; 展开全文
头像 KEY.L
发表于 2022-07-03 20:26:53
本题与斐波那契数列相似,不同的是是以1,2,3,5开始。 那么首先回忆一下斐波那契数列,作为dp的入门题,斐波那契作为数学和许多书中的动归入门题 相信递归的方程式对于大家而言并不难 就是dp[i]=dp[i-1]+dp[i-2]; #include<iostream> 展开全文
头像 Alicess
发表于 2022-06-19 16:48:00
def f(n):     if n==1 or n==2:             return& 展开全文
头像 努力刷题的一个小菜鸟
发表于 2022-10-19 21:02:28
public class Main {     public static void main(String[] args) {      展开全文
头像 向着阳光奔跑的男孩
发表于 2022-03-12 10:03:54
#include<stdio.h> int fun(int n) { if(n==1) return 1; else if(n==2) return 2; else return fun(n-2)+fun(n-1); } int main() { int n; scanf("%d",&a 展开全文
头像 牛客HFL
发表于 2023-08-17 17:12:30
#include<bits/stdc++.h> using namespace std; long long a[55]={0,1,2},n; int main() { for(int i=3;i<=50;i++) a[i]=a[i-1]+a[i-2]; while(cin 展开全文
头像 爱交友的放鸽子能手在度假
发表于 2023-02-19 17:07:35
a_list = [1, 1] n = int(input()) if n < 2: print(n) else: for i in range(2, n+1): a_list.append(a_list[i-1] + a_list[i-2]) prin 展开全文
头像 向光而行的你很犹豫
发表于 2023-05-02 10:21:13
#include<iostream> using namespace std; int f(int n){ if(n==1)return 1; if(n==2)return 2; return f(n-1)+f(n-2); } int main(){ in 展开全文