楼梯专题

走楼梯 递归 动态规划

<span style="font-size:18px;">/*** * @author admin* 一个楼梯有20级,每次走一级或两级,从底走到顶,一共有多少种走法* 递归 动态规划*/public class Floor {public static void main(String[] args) {int n=20;System.out.println(computer(n));

九度oj-1205-N阶楼梯上楼问题

时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:3743 解决:1472 题目描述: N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归) 输入: 输入包括一个整数N,(1<=N<90)。 输出: 可能有多组测试数据,对于每组数据, 输出当楼梯阶数是N时的上楼方式个数。 样例输入: 4 样例输出:

航电ACM [hdu-2041] 超级楼梯

超级楼梯 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 28141    Accepted Submission(s): 14536 Problem Description 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级

有关于递归函数的一些学习记录(Recursion)走楼梯,递归找出最两个数的大公约数,汉诺塔问题

递归函数的定义是指在函数执行的过程中,在函数体中直接或间接的调用了自己,这样的函数就是递归函数。递归函数的使用使得分而制之(Divide and Conquer)的思想得意实现,并在解决循环和一些复杂的求解问题中显示了很好的作用。 问题一:说,一个人在爬一个楼梯时,一次可以走一个台阶也可以走两个台阶,问这个人走到第九个台阶有多少种走法? 这是我在2013年春参加南京大学计

C语言例题44、输出楼梯图形

#include <stdio.h>void main() {for (int i = 0; i < 5; i++) {for (int j = 0; j <= 5 * i; j++) {//楼梯长度,可随意调整printf("%c%c", 0xa8, 0x80);//终端不支持显示这两个字符的字体,白色方块,不用纠结}printf("\n");}} 运行结果: 本章C语言经典例题合集:ht

CCF NOI100003 上楼梯

问题链接:CCF NOI100003 上楼梯。 时间限制: 1000 ms  空间限制: 262144 KB 题目描述    楼梯有N级台阶,上楼可以一步上一级台阶,也可以一步上两级台阶。编一程序,计算共有多少种不同的走法。 输入   一行,一个整数n(1 <= n <= 30),表示台阶的级数。 输出   一个整数,走法的种数。 样例输入 3 样例输出

第十五届蓝桥杯第三期模拟赛第十题 ← 上楼梯

【问题描述】 小蓝要上一个楼梯,楼梯共有 n 级台阶(即小蓝总共要走 n 级)。小蓝每一步可以走 a 级、b 级或 c 级台阶。 请问小蓝总共有多少种方案能正好走到楼梯顶端?【输入格式】 输入的第一行包含一个整数 n 。 第二行包含三个整数 a, b, c 。【输出格式】 输出一行包含一个整数,表示答案。答案可能很大,请输出答案除以 1000000007 后的余数。【样例输入】 4 1 2 3【样

破损的楼梯

分析: 也就是说,每一次步长是 1或2,如果a[i]是破损的楼梯的话,那么不能走。 所要解决的问题是,到达楼顶的方案数对1e9+7取模。 到达每一个楼梯 i 的前提是 要么从 i-1 或 i-2 的位置上来的,如果 i 的位置的值=0,则表示是坏的。 可以有状态 dp[i] 表示走到第 i 层楼梯的方案数。 所以,dp[i]=dp[i-1]+dp[i-2] 用 dp 数组来记录走动第 i 层的

面试算法题:爬楼梯,N级楼梯有多少种走法?

By Long Luo 个人博客链接 最近去面试时,在一家小公司面试时,公司小BOSS给我出了一道算法题: 一个人爬楼梯,一步可以迈一级,二级,三级台阶,如果楼梯有N级,要求编写程序,求总共有多少种走法。 这个问题应该是一个很老的题目了,用中学数学来说,就是一个排列组合问题。当时拿到这个题目之后,首先想到使用递归的思想去解决这个问题: N级楼梯问题可以划分为:N-1级楼梯,N-2级楼梯

【HDU】 1180 诡异的楼梯

诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 11508    Accepted Submission(s): 2854 Problem Description Hogwarts正式开学以后,Har

超级楼梯【HDOJ2041】

题目链接 斐波那契数列 #include<cstdio> int main(){int arr[45]={0};arr[1]=1;arr[2]=1;for(int i=3;i<=40;i++){arr[i]=arr[i-1]+arr[i-2]; }int n,t;scanf("%d",&n);while(n--){scanf("%d",&t);printf("%d\n",arr[t]);}re

hdu1180 诡异的楼梯 (广搜 做着比较有chengjiuga)

诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 14457    Accepted Submission(s): 3693 Problem Description Hogwarts正式开学以后,Ha

程序员的算法趣题:Q15 走楼梯(Java版)

题目说明 A从底部上楼梯时,B从该楼梯的顶部往下走。 每次不一定只走 1 级,最多可以一次跳过 3 级(即直接前进 4 级)。 但无论走多少级,1 次移动所需时间不变。 两人同时开始走,求共有多少种“两人最终同时停在同一级”的情况 (假设楼梯宽度足够,可以相互错开,不会撞上。另外,同时到达同一级时视为结束)。 思路1 1.A上楼,一次走1~4级台阶;B下楼,一次走1~4级台阶 2.用双

P1255 数楼梯题解

题目 楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。 输入输出格式 输入格式 一个数字,楼梯数。 输出格式 输出走的方式总数。 输入输出样例 输入样例 4 输出样例 5 解析 这个题目如果想要走到第1000个台阶,必须要先走到第998个台阶或者第999个台阶,然后一步跨到第1000级,所以到第1000个台阶的走法数量就是从第9

基于激光雷达的机器人楼梯自主识别

机器人如何自主识别楼梯是一个非常有意思的话题 这里基于激光雷达,介绍一种简单粗暴的方法,如果环境不复杂,则可以将楼梯很好的检测出来。 github源码,较为简洁,易于理解:https://github.com/BIT-MJY/stairs_recogniton (1)首先采集激光雷达点云: (2)将感兴趣区域(如机器人前方-15°~15°的水平FOV范围)中的点云投影到XZ平面:

C语言小白上楼梯问题(递归)

问题描述 小白正在上楼梯,楼梯有n阶台阶,小白一次可以上1阶,2阶或者3阶台阶,实现一个方法,计算小白有多少种走完楼梯的方式。 样例输入 3 样例输出 4 参考代码 #include<stdio.h>int f(int n){if(n<0)return 0;if(n==0||n==1)return 1;//注意n为0时也为一种方式if(n==2)return 2;return

超级楼梯 递推

有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? Input 输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。 Output 对于每个测试实例,请输出不同走法的数量 Sample Input 223 Sample Output 12 看到这个题目

dfs专题 P1255 数楼梯——洛谷(疑问)

题目描述 楼梯有 �N 阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。 输入格式 一个数字,楼梯数。 输出格式 输出走的方式总数。 输入输出样例 输入 #1复制 4 输出 #1复制 5 说明/提示 对于 60%60% 的数据,�≤50N≤50;对于 100%100% 的数据,1≤�≤50001≤N≤5000。 想法: 因为在复习df

CSS 楼梯弹弹球

<template><view class="loader"></view></template><script></script><style>body {background-color: #212121;/* 设置背景颜色为 #212121 */}.loader {position: relative;/* 设置定位为相对定位 */width: 120px;/* 设置宽度为 120px

一共有20级楼梯,每次可以上1级或2级,登上第20级一共有多少种上法

1. 分析 上第1级: 1种上法 上第2级: 2种上法 上第3级: 3种上法  3 = 2 + 1 上第4级: 5种上法  5 = 3 + 2 上第5级: 8种上法  8 = 5 + 3 ... 1,2,3,5,8, ... 从第3级楼梯开始,每级楼梯的上法等于之前两级楼梯上法的和。 由此构成斐波那契数列,登上第20级台阶种类数即为该数列第二十项的数值,经计算为109

小白上楼梯(递归)

小白上楼梯  楼梯有n阶 一次可以上1阶或者2阶或者3阶  请问小白总共有多少种上楼梯的方法? import java.util.Scanner;public class recursion1 {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc =new Scanner(Sys

有十个台阶,一步或两步走,上楼梯有几种上法?

有十个台阶,一步或两步走,上楼梯有几种上法?   数学解法: 5个两步走:14个两步走,2个一步走:5C1+5C2=153个两步走,4个一步走:5C1+5C2×2+5C3=352个两步走,6个一步走:7C1+7C2=281个两步走,8个一步走:9C1=910个一步走:1综上:2+15+35+28+9=89种   代码递归:   #include <stdio.h>int sum =

打印楼梯,同时在楼梯上方打印两个笑脸。

#include<stdio.h>   int main() {     int i,j;     printf("\1\1\n"); /*输出两个笑脸*/     for(i=1;i<11;i++)     {         for(j=1;j<=i;j++)             printf("%c%c",219,219);         printf("\n");     }

【PTA】 N阶楼梯上楼问题

题目: 要求:输入输入整数n,输出当楼梯阶数是n时的上楼方式总数。 这题的实质是斐波那契数列: 刚开始我就想到用数组,简单直接: #include<iostream>using namespace std;int main(){int n,a[45];a[1]=1;a[2]=2;for(int i=3;i<46;i++) //i=3开始符合斐波那契数列的规律 a[i]=a[i-

【考研每日一题11】N阶楼梯上楼问题

题目地址:牛客网 题目描述: N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归) 输入描述: 输入包括一个整数N,(1<=N<90)。 输出描述: 可能有多组测试数据,对于每组数据,输出当楼梯阶数是N时的上楼方式个数。 示例1 输入 4 输出 5 分析: 不能用递归的话就用dp吧,一道很典型的dp题,我记得是我大一的时候进校队选拔赛的热身赛