首页 > 代码库 > 计蒜客 挑战难题 爬楼梯

计蒜客 挑战难题 爬楼梯

假设你现在正在爬楼梯,楼梯有n级。每次你只能爬1级或者2级,那么你有多少种方法爬到楼梯的顶部?

格式:

   第一行输入一个数n(n<=50),代表楼梯的级数。

   接下来一行输出你的方法总数。

样例输入

5

样例输出

8
==========================
第一次code:
 1 import java.util.Scanner; 2  3 public class Main  4 { 5     public static void main(String[] args)  6     { 7         Scanner input = new Scanner(System.in); 8         System.out.println(a(input.nextInt())); 9     }10     static long a (int n)11     {12         int a = n / 2;13         int b = n - a*2;14         long c=0;15         if(a==0)16         {17             return 1;18         }19         else20         {21             for(int i=0;i<a;i++)22             {23                 c += work(n-(i+1),i+1);24             }25             return c+1;26         }27     }28     /**29      * 计算排列组合30      * @param n31      * @param k32      * @return33      */34     static long work(int n , int k)35     {  36         if(k > n/2)37         {  38             k = n-k;  39         }  40         long a = 1;  41         long b = 1;  42         int i;  43         for(i = 1 ; i <= k ; ++i)44         {  45             a *= n-i+1;  46             b *= i;  47             if(a%b == 0)48             {  49                 a /= b;  50                 b = 1;  51             }  52         }  53         return a/b;  54     } 55 }
台阶数为 1 阶时,方法数为:1
台阶数为 2 阶时,方法数为:2
台阶数为 3 阶时,方法数为:3
台阶数为 4 阶时,方法数为:5
台阶数为 5 阶时,方法数为:8
台阶数为 6 阶时,方法数为:13
台阶数为 7 阶时,方法数为:21
台阶数为 8 阶时,方法数为:34
台阶数为 9 阶时,方法数为:55
台阶数为 10 阶时,方法数为:89
台阶数为 11 阶时,方法数为:144
台阶数为 12 阶时,方法数为:233
台阶数为 13 阶时,方法数为:377
台阶数为 14 阶时,方法数为:610
台阶数为 15 阶时,方法数为:987
台阶数为 16 阶时,方法数为:1597
台阶数为 17 阶时,方法数为:2584
台阶数为 18 阶时,方法数为:4181
台阶数为 19 阶时,方法数为:6765
台阶数为 20 阶时,方法数为:10946
台阶数为 21 阶时,方法数为:17711
台阶数为 22 阶时,方法数为:28657
台阶数为 23 阶时,方法数为:46368
台阶数为 24 阶时,方法数为:75025
台阶数为 25 阶时,方法数为:121393
台阶数为 26 阶时,方法数为:196418
台阶数为 27 阶时,方法数为:317811
台阶数为 28 阶时,方法数为:514229
台阶数为 29 阶时,方法数为:832040
台阶数为 30 阶时,方法数为:1346269
台阶数为 31 阶时,方法数为:2178309
台阶数为 32 阶时,方法数为:3524578
台阶数为 33 阶时,方法数为:5702887
台阶数为 34 阶时,方法数为:9227465
台阶数为 35 阶时,方法数为:14930352
台阶数为 36 阶时,方法数为:24157817
台阶数为 37 阶时,方法数为:39088169
台阶数为 38 阶时,方法数为:63245986
台阶数为 39 阶时,方法数为:102334155
台阶数为 40 阶时,方法数为:165580141
台阶数为 41 阶时,方法数为:267914296
台阶数为 42 阶时,方法数为:433494437
台阶数为 43 阶时,方法数为:701408733
台阶数为 44 阶时,方法数为:1134903170
台阶数为 45 阶时,方法数为:1836311903
台阶数为 46 阶时,方法数为:2971215073
台阶数为 47 阶时,方法数为:4807526976
台阶数为 48 阶时,方法数为:7778742049
台阶数为 49 阶时,方法数为:12586269025
台阶数为 50 阶时,方法数为:20365011074

单次运算,时间效率为 0 毫秒。

计蒜客 挑战难题 爬楼梯