已知:小青蛙每次只能跳一个或两个台阶。
问:对于n个台阶,小青蛙有多少种跳法。
代码如下:
#include <stdio.h>
int Com(int u)
{
int v=u;
int w=1;
while (v >= 2)
{
w = w * v;
v--;
}
return w;
}
int Frog(int x)
{
int a = x;
int b = 0;
int c = x;
while(a>=0)
{
b = b + Com(c)/Com(a)/Com(c - a);
c = c - 1;
a -= 2;
}
return b;
}
int main()
{
int m;
scanf("%d", &m);
int n = Frog(m);
printf("%d\n", n);
return 0;
}
实际上, 排列组合是解决问题的一种思路。
在此处,用阶乘实现组合数的表达。
如有更好的解法或者代码纠错,望不吝赐教!
下附测试图: