一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析:a.如果两种跳法,1阶或者2阶,那么假定第一次跳的是一阶,那么剩下的是n-1个台阶,跳法是f(n-1);b.假定第一次跳的是2阶,那么剩下的是n-2个台阶,跳法是f(n-2)c.由a\b假设可以得出总跳法为: f(n) = f(n-1) + f(n-2) d.然后通过实际的情况可以得出:只有一
原创 2015-12-29 19:00:42
327阅读
台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路: 这个就相当于斐波那契数列。
转载 2017-02-13 17:10:00
83阅读
2评论
该程序给出了使用递归方式以及使用迭代方式两种算法实现。该两种实现都基于如下推导: 当 m = n, n != 1 时,f(n) = 2(n-1) 即 f(n) 为 二项式 (a+b)n 展开式各项系数之和,推导如下: 设楼梯有 n 级,某人一步最多迈 m(m=n) 级,使用“隔板法”(共 n-1 个空位)可得 f(n) = ∑n=1nCnn-1 = 2n-1。 当 m <
转载 2011-03-15 12:07:00
108阅读
2评论
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。题目分析:对于这样的题目,我们不妨先举一个实例进行分析,例如n=5时,无非就是下面三种跳法,只是顺序可变,然后就把问题转变为排列组合的问题了。跳法一:0个2,5个1跳法二:1个2,3个1跳法三:2个2,1个1相同元素的排列组合问题,我们可以采取隔板法进行分析,例...
原创 2022-09-20 10:42:01
44阅读
题目描述 1.如果第一次跳一阶那么还有n-1阶,共有F(n-1)次跳法; 2.如果第一次跳两阶那么还有n-2阶,共有F(n-2)次跳法; 3.由实际情况可知N等于1的时候只有一种跳法;N等于2的时候有两种跳法; 由1,2假
原创 2022-11-28 15:39:06
126阅读
题意有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式。分析递推公式a[i]:=a[i]+a[i-j];varn,k,i,j:longint;a:array[-1000..100000]of longint;begi...
转载 2017-02-04 16:15:00
128阅读
2评论
思路:这题虽然跟斐波那契形式一样,但是思维过程不一样。对于斐波那契数列,我们是直接根据它的性质来建立动态规划等式。但是对于跳阶,我们得
原创 2022-08-30 09:56:49
52阅读
递归算法有弊端:计算顺序是反的,性能,内存以后再做分析 所谓的台阶问题就是说,从0开始上台阶1,2,3...n,每次只能上1个或者2个台阶。问上到n个台阶有多少种走法。这个问题是比较典型的,也有很多种变形,我们先讲解下这种的实现
原创 2021-07-29 13:49:07
372阅读
在你面前有一个n阶的楼梯(n>=100且n<500),你一步只能上1阶或3阶。请问计算出你可以采用多少种不同的方式爬完这个楼梯(到最后一层为爬完)。要考虑n,n=100的时候,int类型long类型都溢出了,而且越来越大,要用BigInteger数据类型,规律就是a[n]=a[n-1]+a[n-3],先列出前六个台阶的总的方式,找到规律,用递归会超时,直接用循环更快。import ja
转载 2023-05-23 21:55:35
100阅读
//AC,有范围的,到四十即可#include<stdio.h>int main(){ int i,T,j;int num,ans;int f[42]; f[0]=0;f[1]=1;f[2]=2;//不可再加上int //int f[42]={0,1,2}; for(j=3;j<40;j++) f[j]=f[j-1]+f[j-2]; scanf("%d",&T); for(i=1;i<=T;i++) { scanf("%d",&num); ans=f[num-1]; printf("%d\n",
转载 2012-03-31 23:53:00
72阅读
2评论
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=13&tqId=11161&rp=1&ru=/ta/coding-interviews&qru=/ta...
i++
原创 2022-08-10 15:48:54
51阅读
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。方法一:递归当只有一阶台阶的时候,只有一种跳法,有两阶台阶的时候,有两种跳法。有n阶台阶的时候,可以分解为先跳n-1阶台阶,再跳1阶台阶和先跳n-2阶台阶,再一次跳2阶台阶。class Solution {public: int jumpFloor(int number) ...
原创 2021-07-12 16:30:41
511阅读
题目:题目描述有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式。输入输出格式输入格式: 输入文件的仅包含两个正整数N,K。输出格式: 输入文件stair.out仅包括1个正整数,为不同方式数,由于答案可能很大,你需要输出mod 100003后的结果。作者思路:递归,公式是:a[i]=a[i]+a[i-j];代码:var i,j,n,k,b:l
原创 2021-07-12 17:10:21
636阅读
错误写法: else if这一句会报错,else if应该是紧跟在if语句后面,中间不能插入其他语句,不然else if不知道之前的if是哪一个。 正确写法: 这里要强调一下else if与if 的不同。这段代码,把else if换成if也是正确的,但并不代表else if和if是一样的。 现在假设
转载 2017-05-20 16:53:00
72阅读
2评论
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
转载 2019-03-02 17:54:00
83阅读
2评论
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。function jumpFloor(number){ if(number <= 0) return 0; if(number == 1) return 1; if(number == 2) return 2; let dp = [] dp[0] = 1 dp[1] = 2 for(let i = 2; i < n
转载 2022-02-17 10:41:47
27阅读
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 function jumpFloor(number) { if(number <= 0) return 0; if(number == 1) return 1; if(number == 2) return 2; let dp = []
转载 2021-06-29 15:25:57
59阅读
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先
原创 2022-08-22 16:54:01
41阅读
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶
i++
翻译 2022-07-08 12:56:09
87阅读
  题目一(青蛙跳台阶):一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。  分析:  假设只有一级台阶,则总共只有一种跳法;  假设有两级台阶,则总共有两种跳法;  假设有n级台阶,那么第一步就要分为跳一步和跳两步:  跳一步,那么接下来就是跳n-1;  跳两步,那么接下来就是跳n-2;  所以,总数可以认为是f(n-1)+f(n-2)。  主要代码: 
  • 1
  • 2
  • 3
  • 4
  • 5