上台阶

上台阶

总时间限制: 1000ms

内存限制: 65536kB

描述

楼梯有n(100 > n > 0)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编程计算共有多少种不同的走法。

输入
输入的每一行包括一组测试数据,即为台阶数n。最后一行为0,表示测试结束。
输出
每一行输出对应一行输入的结果,即为走法的数目。
样例输入
1
2
3
4
0
样例输出
1
2
4
7程序:
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iostream>

using namespace std;

int lou(int x){
int a[x];
a[1]=1;
a[2]=2;
a[3]=4;
for(int i=4;i<=x;i++){
a[i]=a[i-1]+a[i-2]+a[i-3];
}
return a[x];
}

int n;

int main(){
while(scanf("%d",&n)&&n!=0){
cout<<lou(n)<<endl;
}
return 0;
}
分析:利用递归,当到n-1阶时,有a[n-1]种方案,当到n-2阶时,有a[n-2]种方案,当到n-3阶时,有a[n-3]种方案,以此递归。
时间: 2024-07-30 13:49:30

上台阶的相关文章

递推-练习2--noi3525:上台阶

递推-练习2--noi3525:上台阶 一.心得 二.题目 3525:上台阶 总时间限制:  1000ms 内存限制:  65536kB 描述 楼梯有n(100 > n > 0)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编程计算共有多少种不同的走法. 输入 输入的每一行包括一组测试数据,即为台阶数n.最后一行为0,表示测试结束. 输出 每一行输出对应一行输入的结果,即为走法的数目. 样例输入 1 2 3 4 0 样例输出 1 2 4 7 三.AC代码 1 #includ

3525:上台阶

3525:上台阶 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 楼梯有n(100 > n > 0)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编程计算共有多少种不同的走法. 输入 输入的每一行包括一组测试数据,即为台阶数n.最后一行为0,表示测试结束. 输出 每一行输出对应一行输入的结果,即为走法的数目. 样例输入 1 2 3 4 0 样例输出 1 2 4 7 1 #include<iostream> 2 #incl

[编程题-京东]上台阶

[编程题] 上台阶 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?注:规定从一级到一级有0种走法. 给定一个正整数int n,请返回一个数,代表上楼的方式数.保证n小于等于100.为了防止溢出,请返回结果Mod 1000000007的值. 测试样例: 3 返回:2 class GoUpstairs { public: int countWays(int n) { // write code here if(n==1) return 1; int f0=

赛码网算法: 上台阶 ( python3实现 、c实现)

上台阶 题目描述 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?注:规定从一级到一级有0种走法. 输入输入数据首先包含一个整数n(1<=n<=100),表示测试实例的个数,然后是n行数据,每行包含一个整数m,(1<=m<=40), 表示楼梯的级数.样例输入223输出对于每个测试实例,请输出不同走法的数量.样例输出12时间限制C/C++语言:2000MS其它语言:4000MS 内存限制C/C++语言:65537KB其它语言:589825KB

如何用纯 CSS 创作一个小球上台阶的动画

效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/PBGJwL 可交互视频 此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码. 请用 chrome, safari, edge 打开观看. https://scrimba.com/p/pEgDAM/cDMyyHv 源代码下载 本地下载 每日前端实战系列的全部源代码请从 github 下载: https://github.com/

【JS编程练习】上台阶方法数

var n, array = [], m,array2 = []; n = read_line();n = parseInt(n); while(m = read_line()){ array.push(parseInt(m)); } for(var i = 0; i < n; i++){ array2[i] = func(array[i]); } for(var x = 0; x < array2.length; x++){print(array2[x]);} function func(m

[京东]上台阶

时间限制:3秒 空间限制:32768K 热度指数:28619 本题知识点: 递归 动态规划 题目描述 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?注:规定从一级到一级有0种走法. 给定一个正整数int n,请返回一个数,代表上楼的方式数.保证n小于等于100.为了防止溢出,请返回结果Mod 1000000007的值. 测试样例: 3 返回:2 1 class GoUpstairs { 2 public: 3 int countWays(int n)

斐波那契数列解决上台阶的问题

斐波那契数列(Fibonacci sequence)因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理.准晶体结构.化学等领域,斐波纳契数列都有直接的应用. 数列的特征:第1项是0,第2项是第一个1,从第3项开始,每一项都

斐波那契数列三种实现(上台阶)-Python

1.递归 # 递归 def fibs(n): if n < 1: return 0 elif n == 1: return 1 return fibs(n - 2) + fibs(n - 1) print(fibs(6)) 2.循环 # 循环 def fibs(n): a = [1, 1] for i in range(n - 2): a.append(a[-2] + a[-1]) return a[n-1] print(fibs(6)) class Solution: def fib(self