精华内容
下载资源
问答
  • #include"stdio.h" //定义全局变量 int res=0; void f(int n,int step) { if(n<0){ return;... //灵活运用斐波那契数列,递归进行计算 f(n-1,step+1); f(n-2,step+1); } int main() { ...
    #include"stdio.h"
    //定义全局变量 
    int res=0;
    void f(int n,int step)
    {
     if(n<0){  
      return;
     }
     if(n==0&&step%2==0)
      res++; 
     //灵活运用斐波那契数列,递归进行计算 
     f(n-1,step+1);
     f(n-2,step+1);
    }
    int main()
    {
     f(39,0);
     printf("%d",res);
     return 0;
    }
    展开全文
  • 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,...

    题目: 

    小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!

    站在台阶前,他突然又想着一个问题:

    如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?


    请你利用计算机的优势,帮助小明寻找答案。

    答案:51167078 

    解题思路:

    不难看出这是一道递归的题目,很容易联想到递归的一道模板题目,爬楼梯,但是又有一点不同,就是这道没题目加了一个限制条件,就是要求最后爬的步数是偶数,那么我们在原来题目递归的基础上再加上一个步数的判断就好了

    用 void sol(int n,int step)这个递归函数,n代表台阶数,step代表爬的楼梯数,注意边界条件是n<0的时候直接退出,当n等于零时判断step是否是偶数,偶数的话答案加一,这个答案用全局变量表示,最后输出这个全局变量就可以了。

    下面附上代码

    #include <bits/stdc++.h>
    using namespace std;
    int ans=0;
    void sol(int n,int step)
    {
        if(n<0) return;
        if(n==0){
            if(step%2==0)
                ans++;
        }
        sol(n-1,step+1);
        sol(n-2,step+1);
    }
    int main()
    {
        sol(39,0);
        cout<<ans<<endl;
       // system("pause");
        return 0;
    }
    

    展开全文
  • 题目标题: 第39级台阶 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右...


    题目标题: 第39级台阶

    小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!

    站在台阶前,他突然又想着一个问题:

    如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?


    请你利用计算机的优势,帮助小明寻找答案。

    要求提交的是一个整数。
    注意:不要提交解答过程,或其它的辅助说明文字。

     

    思路: 这题很明显是一道递归的题目。 f(n)为n阶台阶的总走法数,则f(n) = 以下四种情况走法数的总和

    (1)第一次左脚走一级,最后一次右脚走一级,中间剩余n-2阶台阶的走法有f(n-2)种

    (2)第一次左脚走一级,最后一次右脚走两级,中间剩余n-3阶台阶的走法有f(n-3)种.

    (3)第一次左脚走两级,最后一次右脚走一级,中间剩余n-3阶台阶的走法有f(n-3)种

    (4)第一次左脚走两级,最后一次右脚走两级,中间剩余n-4阶台阶的走法有f(n-4)种

    即有: f(n) = f(n-2) + 2*f(n-3) + f(n-4), 求f(39)即可

    但是这样写成递归的话栈会溢出,所以可以将其改成循环的形式,如下所示代码:

     1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 int f[40];  //使用递归会导致栈溢出,所以使用数组保存结果,用循环代替递归
     6 
     7 int main()
     8 {
     9     //先手算出前4项
    10     f[2] = 1;
    11     f[3] = 2;
    12     f[4] = 2;
    13     f[5] = 4;
    14     for (int i = 6; i < 40; ++i)
    15         f[i] = f[i - 2] + 2 * f[i - 3] + f[i - 4];
    16 
    17     cout << f[39] << endl;
    18 
    19     return 0;
    20 }

    最终结果:51167078

    转载于:https://www.cnblogs.com/FengZeng666/p/10551798.html

    展开全文
  • /*小明刚刚看完电影《第39级台阶》 * 离开电影院的时候,他数了数礼堂前的台阶数, * 恰好是39级! 站在台阶前,他突然又想着一 * 个问题: 如果我每一步只能迈上1个或2个台阶。 * 先迈左脚,然后左右交替,...

    /*小明刚刚看完电影《第39级台阶》
    * 离开电影院的时候,他数了数礼堂前的台阶数,
    * 恰好是39级! 站在台阶前,他突然又想着一
    * 个问题: 如果我每一步只能迈上1个或2个台阶。
    * 先迈左脚,然后左右交替,最后一步是迈右脚,
    * 也就是说一共要走偶数步。那么,上完39级台阶,
    * 有多少种不同的上法呢?
    * 请你利用计算机的优势,帮助小明寻找答案。
    */
    public class Di39JiTaiJie {
    public static int f(int n,int k) {
    if(n==0 && k %2 ==0) return 1;//k是走的步数
    if(n<0) return 0;
    int x = f(n-1,k+1)+f(n-2,k+1);
    return x;
    }
    public static void main(String [] args) {
    System.out.println(f(39,0));

    }
    

    }

    展开全文
  • 【问题描述】小明刚刚看完电影《第39级台阶》。离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每...分析:递归寻找走完39级台阶用了偶数步的数量public class Main...
  • 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也...
  • 蓝桥杯39级台阶

    2018-03-25 19:37:26
    小明刚刚看完电影《第39级台阶》。离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级。站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也...
  • 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!  站在台阶前,他突然又想着一个问题:  如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈...
  • 蓝桥杯 dp
  • 又一次见到递归的方法,看来这个方法不会是不行的。#include int count = 0; void getResult(int level,int m)//其中level表示步数 m表示剩下的台阶数 { if(m) return; if (level%2==0&&m ==0) count++; ...
  • 蓝桥杯-39级台阶

    2019-10-04 18:23:37
    小明刚刚看完电影《第39级台阶》。离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也...
  • 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也...
  • 问题分析: 看到这个问题首先想到的递归 定义一个方法 int F( int n ) 不考虑其具体实现 我们令其可以实现返回这道题的解; 继续分析这道题的解集,有一点是可以确定的: 在解集中小明跨出的第一步有两种情况①...
  • 题目标题: 第39级台阶 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,...
  • 蓝桥杯——39级台阶

    2019-04-20 16:11:56
    题目标题: 第39级台阶 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,...
  • 题目::第39级台阶 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步 只能迈上1个或2个台阶。先迈左脚,然后左右交替, ...
  • [蓝桥杯]java实现第39级台阶 题目描述: 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈...
  • 小明刚刚看完电影《第39级台阶》。离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,...
  • 39级台阶——蓝桥杯

    2019-03-14 13:25:58
    小明刚刚看完电影《第39级台阶》。离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也...
  • 2013蓝桥杯 【初赛试题】 第39级台阶

    万次阅读 多人点赞 2014-02-08 21:17:46
     小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!  站在台阶前,他突然又想着一个问题:  如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈...
  • 蓝桥杯-第39级台阶

    千次阅读 2018-02-12 17:25:49
    题目描述: 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后...
  • 题目标题: 第39级台阶 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,...
  • 可以说是自己做的第一道递归题了Problem Description小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个...
  • 蓝桥杯——递归问题

    2019-03-14 21:38:45
    递归问题 深搜dfs 在有条件的情况下试探各种情况 找出口 递归的终止条件 递归函数参数边界值的界定 汉诺塔问题Hanoi /*思想 1.src上的n-1个盘子移到medium 2.src剩下的一个最大的盘子移到dest 3.medium上的n-...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 303
精华内容 121
关键字:

蓝桥杯39级台阶递归