问题 C: 跳台阶
题目描述
小明在坐中南大学研发的无人车到达了目的地。
中南大学有着出色的人工智能研究。它将打造面向中国市场的全无人驾驶。
从无人车下来以后,小明看到了一个长长的楼梯。
有一个n级台阶的楼梯,小明一次可以向上跳1步,两步,甚至是n步,请问小明跳到n级台阶有多少种跳法?
输入
第一行输入一个整数t,代表有t组样例:( T<=30)
接下来的t行,都用一个整数n,表示楼梯有n级台阶( 1<=n<=30)
输出
输出跳到第n级台阶有多少种跳法
样例输入
1
1
样例输出
1
题目解析
可以先列出前面几次的跳法总数,然后寻找规律即可
例如 1:1
2:1+1=2
3:1+2+1=4
4:1+3+3+1=8
5:1+4+6+4+1=16
…
实际上可以知道该题其实就是求杨辉三角形的一列的数之和,从以上例子可以知道,一列之和为2的n-1次方。
#include <stdio.h>
int main(void){
int n,t,sum=1,i;
while(~scanf("%d",&t)){
while(t--){
scanf("%d",&n);
for(i=1;i<n;i++){
sum*=2;
}
printf("%d\n",sum);
sum=1;
}
}
return 0;
}
AC代码如上。(如有错误,希望指正)