链接:
https://www.nowcoder.com/acm/contest/90/A
来源:牛客网
来源:牛客网
题目描述
小明在坐景驰科技研发的无人车到达了目的地。
从无人车下来以后,小明看到了一个长长的楼梯。
有一个n级台阶的楼梯,小明一次可以向上跳1步,两步,甚至是n步,请问小明跳到n级台阶有多少种跳法?
输入描述:
第一行输入一个整数t,代表有t组样例:( T<=30) 接下来的t行,都用一个整数n,表示楼梯有n级台阶( 1<=n<=30)
输出描述:
输出跳到第n级台阶有多少种跳法
示例1
输入
1 1
输出
1
题意:很简单 上一个楼梯,emmm,步数无限制,小明腿也特长,能跨n级.
要求我们求出,小明上第n级台阶的方法一共有多少种.
因为一次的步数没限制,
那么要求第n级台阶的走法 自然就是上第n-1级台阶的走法,加上直接从地面飞上去的这一种方法.那么第n-1级台阶的走法自然就是上第n-2级台阶的走法.......
依此类推.
emmm是不是有点像斐波那契,只不过斐波那契是前两项的和,这个是前一项和加1;
那么我就不客气直接上代码了
#include<stdio.h>
int a[40];
int main()
{
a[1]=1;
a[2]=2;
a[3]=4;
for(int i=4;i<40;i++)
{
a[i]+=1;
for(int j=1;j<i;j++)
{
a[i]+=a[j];
}
}
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%d\n",a[n]);
}
}
ps:2018-04-02 21:07:18
其实本来之前写过一次,但是csdn八哥厉害,吃了我一半的文章,当时也比较烦,就没再重新写了.
但是,后来想起来了,然后又想了想这题的思路,觉得还是有必要积累一下.