• 跳台阶


    题目:(1)一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。

    分析:当n = 1, 只有1中跳法;当n = 2时,有两种跳法;当n = 3 时,有3种跳法;当n = 4时,有5种跳法;当n = 5时,有8种跳法;

    n 1 2 3 4 5 6 7 8 9 10
    sum 1 2 3 5 8 13 21 34 55 89

    规律如下:

    f(n)=f(n-1)+f(n-2)

    首先考虑简单的情况

    只有一个台阶的时候只有一种跳法

    两个台阶时有两种跳法。

    对于有n阶楼梯时,有f(n)种跳法,假设先跳一个台阶,则剩下n-1个台阶,就还有f(n-1)中跳法,假设先跳两个台阶,则剩下n-2个台阶,就还有f(n-2)中跳法。

    由此可以推导出,对于一个n阶楼梯:

     代码如下:

     1 #include "stdio.h"
     2 #include "stdlib.h"
     3   
     4 int function(int n);
     5   
     6 int main(void)
     7 {
     8   int tmp;
     9     
    10   tmp = function(10);
    11   printf("%3d
    ",tmp);
    12   
    13   return 0;
    14 }
    15   
    16 int function(int n)
    17 {
    18   if(n == 1)
    19     return 1;
    20   else if(n == 2)
    21     return 2;
    22   else 
    23     return function(n-1) + function(n-2);
    24 }
  • 相关阅读:
    P4715 【深基16.例1】淘汰赛
    P4913 【深基16.例3】二叉树深度
    P1478 陶陶摘苹果(升级版)
    P1223 排队接水
    【深基12.例1】部分背包问题
    全排列和组合
    P1036 选数
    100——第25例
    100——第24例
    100——第23例
  • 原文地址:https://www.cnblogs.com/ghwxxg/p/14348690.html
Copyright © 2020-2023  润新知