哈喽啊大家晚上好!今天给大家带来的是C语言经典题目之青蛙跳台阶。青蛙跳台阶是一个数学问题,也是一个经典的递归问题。假设一只青蛙要跳上一个n级台阶,它可以每次跳1级台阶或2级台阶。问:青蛙跳上这个n级台阶总共有多少种不同的跳法?
要想解决这个问题,我们首先要对问题进行分析。首先,设青蛙跳上n级台阶时有f(n)种跳法,那么在青蛙进行最后一步跳跃时,它肯定只能跳一级台阶或者两级台阶。那么,我们就可以分两种情况经行分析:
1.当青蛙最后一跃为一级台阶时:除去最后一级台阶,前面的n-1级台阶就会有f(n-1)种跳法;
2.当青蛙最后一跃为二级台阶时:除去最后的二级台阶,前面的n-2级台阶就会有f(n-2)种跳法;
那么,逻辑已经理清楚了,现在我们就用代码去实现它。首先我们需要设置一个递归函数用来运算青蛙跳台阶的所有方法,比如:
int jump_step(int n)
{if(n <= 2) {return n;}else {return jump_step(n-1) + jump_step(n-2);}
}
最后,我们在mian函数中调用这个递归函数即可解决青蛙跳台阶的问题了
代码如下:
#include <stdio.h>int jump_step(int n) {if ( n <= 2) {return 1;} else {return jump_step(n-1) + jump_step(n-2);}
}int main() {int n;printf("请输入一个正整数:");scanf("%d", &n);printf("%d级台阶,青蛙有%d种跳法\n", n, jump_step(n));return 0;
}
那么,今天的知识分享就到此结束啦,感谢大家的支持!各位明天见!