递归写法算走楼梯
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。
对于每个测试实例,请输出不同走法的数量。
2 2 3
1 2
- #include
- long long cqh[1010]={0,1,1};
- long long tz(int x);
- int main()
- {
- long long n,x;
- scanf("%lld",&n);
- for(int i=1;i<=n;i++)
- {
- scanf("%d",&x);
- printf("%lld\n",tz(x));
- }
- return 0;
- }
-
-
- long long tz(int x)
- {
- if(cqh[x]==0)
- cqh[x]=tz(x-1)+tz(x-2);
- return cqh[x];
- }