青蛙跳台阶
有n个台阶,一只青蛙一次可以跳上去俩个或者一个台阶,问跳上第n个台阶有多少种机会
思路
先看个简单的做法找下规律
用递归的思想, 是大事化小
所以当台阶数大于3 时可以将台阶数递到只剩1个或2个也就是
fib(n-1),和fib(n-2)最后在加起来就可以得到总的方法了,当然这看起来很抽象,在看个图相信能有更大的帮助
代码
直接可以照搬
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//青蛙跳台阶
int Fib(int n)
{
if (n > 2)
{
return Fib(n - 1) + Fib(n - 2);
}
return n;
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = Fib(n);
printf("%d", ret);
return 0;
}