超级楼梯
发布时间: 2017年11月12日 12:31 最后更新: 2017年11月12日 12:33 时间限制: 1000ms 内存限制: 128M
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。
对于每个测试实例,请输出不同走法的数量
2 2 3
1
2
代码
简单粗暴,用空间换时间,当然这40个数也可以在程序里算,耗时大概200ms,也是可以过
1 #include <stdio.h> 2 int main(){ 3 unsigned t; 4 scanf( "%u", &t ); 5 int res[41] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 6 89,144,233,377,610,987,1597,2584,4181,6765, 7 10946,17711,28657,46368,75025,121393,196418,317811,514229,832040, 8 1346269,2178309,3524578,5702887,9227465,14930352,24157817,39088169,63245986,102334155}; 9 while( t-- ){ 10 unsigned n; 11 scanf( "%u", &n ); 12 printf( "%d", res[n] ); 13 if( t != 0 ) 14 printf( " " ); 15 } 16 return 0; 17 }