有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?注:规定从一级到一级有0种走法。

给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100。为了防止溢出,请返回结果Mod 1000000007的值。

我们走的最后一步,有几种可能。就是两种,一种是走一步,一种是走两步。拿我们走到十台阶的可能数就可以分为两类F(8)和F(9)。那么我们F(10)=F(9)+F(8),

边界时F(1)=0,F(2)=1

import java.util.Scanner;
public class Main {

public static void main(String[] args) {
 Scanner sc = new Scanner(System.in);
        int b = sc.nextInt();
        int a[] = new int[b];
        for (int i = 0; i < b; i++) {
            a[i] = sc.nextInt();
        }
for (int i = 0; i < b; i++) {
            System.out.println(find2(a[i]));
        }
    }
    //方法一通过递归解决(会造成算法超时)
    private static int find(int n) {
        int number;
        if (n == 0 || n == 1) {
            number = 0;
        } else if (n == 2) {
            number = 1;
        } else if (n == 3) {
            number = 2;
        } else {
            number = find(n - 1) + find(n - 2);
        }

return number;

}
    //方法二,通过动态规划解决
    private static int find2(int n) {

int s[] = new int[101];
         s[0]=0;
         s[1]=0;
         s[2]=1;
         s[3]=2;
         for(int i=4;i<=n;i++)
         {
         s[i]=(s[i-2]+s[i-1])%1000000007;
         }
         return s[n];
    }
}

有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?相关推荐

  1. 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?请编程实现。

    有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?请编程实现. 输入: 输入一个整数M(1<=M<=20),表示楼梯的级数. 输出: 输出不同走法 ...

  2. 超级楼梯——有一楼梯共n级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第n级,共有多少种走法?

    有一楼梯共n级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第n级,共有多少种走法? 现在给你一个正整数n(0<n<40),请你输出不同的走法数. 如n=2,则输出1(你只有一种走 ...

  3. 给定一个矩阵m*n,从左上角开始每次只能向右或者向下走,最后到右下角的位置共有多少种路径

    题目描述 给定一个矩阵m*n,从左上角开始每次只能向右或者向下走,最后到右下角的位置,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和. 思路: 1.排列组合 要从A到B,必须向左走6 ...

  4. 给定一个矩阵m*n,从左上角开始每次只能向右和向下走,最后到右下角的位置共有多少种路径。

    #include <bits/stdc++.h> using namespace std; /*    每次只能向右或向下走    dp[m][n] = dp[m-1][n]+dp[m][ ...

  5. [算法]给定一个矩阵m*n,从左上角开始每次只能向右或者向下走,最后到右下角的位置共有多少种路径

    很经典的一道题 等同于:https://leetcode-cn.com/problems/unique-paths/ 在完美世界面试中遇到了. 每次都只能向右或者向下走,求出所有种情况. 当时想到的思 ...

  6. [分支限界]给定一个矩阵m*n,从左上角开始每次只能向右或者向下走,最后到右下角的位置共有多少种路径

    分支限界解最短路径 问题描述: 要求: 随机数算法 分支限界算法 程序源码 问题描述: 给定一个m行n列的矩阵,从左上角开始每次只能向右或向下移动,最后到达右下角的位置,路径上的所有数字累加起来作为这 ...

  7. 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法? 注:规定从一级到一级有0种走法。

    解:这道题我的初始思路走法必定有111...,还有一种就是里面还有二的序列,这是一个排列组合问题.可是太暴力了,时间复杂度是指数倍. 看了一下题解就是要用动态规划来求解. 进阶1: 我们走的最后一步, ...

  8. HDU2040有一楼梯共M级,刚开始时你在第一级

    有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? 此道题使用类似斐波那契数列方法运用迭代进行操作如果递归会超时 #include<stdio.h> ...

  9. 有N个台阶,一步可以走一梯或者两梯,请问有多少种走法

    有N个台阶,一步可以走一梯或者两梯,请问有多少种走法 最近面试,被问到了这个问题,由于没有看过算法这方面的题,自然这题就凉凉了 力扣题链接 https://leetcode-cn.com/proble ...

最新文章

  1. 漫画 | 大数据风控从业者的一天
  2. 被鱼刺扎一下就没了条手臂?这种“吃人肉”的细菌身边并不罕见
  3. java优先队列的入队函数,算法与数据结构番外(1):优先队列
  4. 提速 30%!腾讯TQUIC 网络传输协议
  5. Moving On Gym - 102222F
  6. 使用Spring Boot来加速Java web项目的开发
  7. mysql 优化的一些小窍门
  8. Echarts数据可视化parallel平行坐标系,开发全解+完美注释
  9. 关于CocosStudioV3.10的场景导入Cocos2d-xV3.17.2场景未发生变化的解决方案
  10. 【CF】438E. The Child and Binary Tree
  11. 外包软件开发时要避免的五个陷阱
  12. python手工打码_Python学习--打码平台
  13. 高中计算机学考操作excel,高中信息技术学业水平考试Word、Excel操作题考点总结...
  14. 取到崭新连号人民币,我却一点都不开心
  15. 计算机u盘被禁用怎么办,电脑U盘启动被禁用了怎么解决 电脑禁用u盘怎样恢复...
  16. Windows 7 插件KB4474419安装 Symantec Endpoint Protection 只能安装在具有SHA-2代码签名支持更新(KB4474419)的系统上
  17. 各品牌电脑U盘启动的快捷键总结
  18. MapXtreme 简单了解
  19. Python 爬虫篇#笔记02# | 网页请求原理 和 抓取网页数据
  20. git stash、git branch使用方法

热门文章

  1. android开发笔记之Google Analytics
  2. 1、垂直对齐方式 vertical-align属性
  3. PAT 自学题解 B1033【测试点4超时】
  4. 阿里,字节,拼多多,B站挨个面试一遍,你们猜哪个待遇最高?
  5. Markdown图片居中、文字居中
  6. 机器人关节(Joint)之间的坐标变换(Transform)
  7. 软件测试工程师求职踩过的坑——实战经验的分享啊
  8. 怎么用MindManager将导图导出为HTML5交互式导图
  9. 关于传感器”英寸“计量
  10. springboot多线程定时任务