青蛙跳台问题
青蛙跳台阶问题也是一个很简单的题目,主要不要把其思想理解错误就行,我就在这里被一个问题困扰了半天!!如图:
这个问题我给出5个台阶时候的表示方法,通过5阶来具体理解这个题目的思想,如图:
如果你能看清楚我上面的5阶所写的8种答案,我们就可以直接通过代码来理解了,不需要再说啥了.
如下面例题:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//====青蛙跳台阶问题
int Frog(int num){
if (num < 3){ //当小于3的时候,直接输出.不会发生变化
return num;
}
else{
return Frog(num - 1) + Frog(num - 2); //当大于3的时候就需要进行递归的调用
} //重点理解return 后面的递归调用的思想
}
int main(){
printf("please enter a number :\n");
int n = 0;
scanf("%d",&n);
int ret = Frog(n); //简单函数调用
printf("青蛙台阶有%d种方法",ret); //输出
system("pause");
return 0;
}
这里的这个题目其实是和前面的好弄塔问题差不了多少,主要在于理解递归的思想.