跳台阶

题目:(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\n",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 }

 

posted on 2021-01-30 12:36  孤帆远去  阅读(72)  评论(0编辑  收藏  举报

导航