求证一个算法题目,小兔子上10楼一共有多少种方法?
前几天遇到一道有趣的题目
一座楼有10层,兔子可以跳跃的层数可以为1,2或者3,那么兔子到达10层有多少种跳法并列出各种情况。(请用Java实现)我想了一下可以嵌套循环,可是感觉方法太笨,各位大牛有好方法吗?
我写了个程序算了一下,可以有274种方法
数学比较差劲,所以来这里求证,是不是一共274种方法?
[解决办法]
#include<stdio.h>
#include<stdlib.h>
int func(int n)
{
if (1 == n)
return 1;
else if (2 == n)
return 2;
else if (3 == n)
return 4;
return func(n - 1) + func(n - 2) + func(n - 3);
}
int main()
{
printf("%d\n", func(10));
system("pause");
return 0;
}