用C语言解决:青蛙跳台阶问题
用C语言解决:青蛙跳台阶问题
一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。
输入一个整数,作为台阶的数目。
输出跳上n个台阶有多少种跳法。
设f(n)表示青蛙跳上n级台阶的跳法数。当只有一个台阶时,
即n = 1时, 只有1中跳法;
当n = 2时,有2种跳法;
当n = 3 时,有3种跳法;
当n很大时,青蛙在最后一步跳到第n级台阶时,有两种情况:
一种是青蛙在第n-1个台阶跳一个台阶,那么青蛙完成前面n-1个台阶,就有f(n-1)种跳法,这是一个子问题。
另一种是青蛙在第n-2个台阶跳两个台阶到第n个台阶,那么青蛙完成前面n-2个台阶,就有f(n-2)种情况,这又是另外一个子问题。
两个子问题构成了最终问题的解,所以当n>=3时,青蛙就有f(n)=f(n-1)+f(n-2)种跳法。
#define _CRT_SECURE_NO_WARNINGS 1
#include
//青蛙跳台阶
int jumpFloor(int n){
if(n <= 0){
return -1;
}
if(n == 1){
return 1;
}
if(n == 2){
return 2;
}
return jumpFloor(n-1)+jumpFloor(n-2);
}
int main(){
int i=0;
scanf("%d",&i);
printf("%d\n",jumpFloor(i));
return 0;
}
用C语言解决:青蛙跳台阶问题相关教程