一共有n层楼梯,人每次可以走1步或2步,一共有多少种走法?

标签: class
2人阅读 评论(0) 收藏 举报
分类:
/*
*一共有n层楼梯,人每次可以走1步或2步,一共有多少种走法?
*
*先找出n中有多少个数为1步,多少个数为2步 ,然后分别用排列组合求出对应组合数(例如1 1 1 2 2总共几种排列)
*/
class Test{
    static int factorial(int n){//求n的阶乘
        int result = 1;
        for (int i = 1; i <= n; i++){
            result *= i;
        }
        return result;
    }
    static int rank(int m, int n){ //在m个空位中选n个坐下的组合数
        return factorial(m)/(factorial(n) * factorial(m - n));
    }
    public static void main(String[] args){
        int n = Integer.parseInt(args[0]);
        int result = 1;// 1 1 1 1 1 1
        for(int i = n-1; i >= (n+1)/2; i--){
            //1 1 1 1 2
            //1 1 2 2
            //2 2 2 
            int n1 = 2 * i - n;
            int n2 = n - i;
            int max  = n1 > n2 ? n1 : n2;
            result = result + rank(i, max);//rank:求出1 1 1 1 2 总组合数
        }
        System.out.println(result);
    }
}
查看评论

一个人爬楼梯,楼梯共20层,一人一步可以走一层或两层,共多少种走法?

这个问题,是一个简单的递归问题。 1、走1层,有一种走法,一步走一层。 2、走2层,有两种走法,可以一步一层走,或一步走两层。 3、走N层,的方法有多少种呢?走到N层只有两种可能,就是N-1层走一步(...
  • junlon2006
  • junlon2006
  • 2017-01-04 11:03:45
  • 1560

[算法]n阶台阶,一次走一步或两步,有多少种走法?

递归实现. 重要的是理解这个逻辑 假设有f(n)种走法, 当走到N-1阶台阶时,有f(n-1)种走法,再走一步走完。 当走到n-2阶台阶时,有f(n-2)种走法, 再走1+1或...
  • kangbin825
  • kangbin825
  • 2017-05-10 22:24:51
  • 2147

一个人走一个n阶的楼梯,他一步可以走1阶,2阶,3阶,这三种情况,问走完这n阶的楼梯共有多少种不同的走法?

当时脑子不够用,10级楼梯嘛,每一次至少走一步,走完10步最多10次,那么用10个循环可以搞定,够傻逼的吧,看下面。 int method_num = 0; int judge_num = 0; ...
  • xhyzdai
  • xhyzdai
  • 2013-01-28 20:57:06
  • 2537

【面试题】N级台阶(比如100级),每次可走1步或者2步,求总共有多少种走法?

走台阶算法(本质上是斐波那契数列)在面试中常会遇到,描述就如题目那样:总共100级台阶(任意级都行),小明每次可选择走1步、2步或者3步,问走完这100级台阶总共有多少种走法?一、 题目分析这个问题本...
  • u010983881
  • u010983881
  • 2016-01-05 15:31:10
  • 14062

有N个台阶,可以走两步也可以走一步 一共有多少种走法

递归的思想: 走1步则还剩余n-1个台阶, 走2步则还剩余n-2个台阶。 分别接着去求出n-1和n-2个台阶的走法、 public int CountNumber(int n){ if(n retur...
  • I_peter
  • I_peter
  • 2016-06-01 08:36:09
  • 914

N个台阶,一次可以走一步或者两步,求走这n个台阶有多少种方法(递归和非递归实现)

1、递归实现 ///递归方法 int Fibonacci(unsigned int N) { if(N
  • muyimufeng
  • muyimufeng
  • 2015-10-15 19:29:12
  • 3664

爬楼梯问题,一共有n阶台阶,每次你可以走1或者2个台阶,到达顶端一共有多少种不同的走法?

典型的动态规划问题,和
  • chivalrousli
  • chivalrousli
  • 2014-05-11 09:43:39
  • 3193

n级阶梯,每次走一步或两步,问最多有多少种走法

遇到这道题两次了,现在来总结下。      方法一:运用组合数学的思想。假设在整个过程中,我有k次走了两步,那么剩下的n-2k次我走的都是一步,那么我总的走的步数是k+n-2k。则结果为从n-k里面...
  • haiyi727
  • haiyi727
  • 2015-04-09 23:50:16
  • 2051

动态规划------走楼梯问题

假设有10阶楼梯,每次可以跨1阶或者2阶,请问走完10阶楼梯总共有多少种走法? 设定一个名为walk(num)的函数,其返回值为走n阶楼梯的走法,则问题为walk(10) 设想一下,我们走到最后一步的...
  • u012578322
  • u012578322
  • 2017-06-25 15:19:37
  • 304

第一题:一个人上台阶可以一次上1个,2个,或者3个,问这个人上n层的台阶,总共有几种走法?

第一题:一个人上台阶可以一次上1个,2个,或者3个,问这个人上n层的台阶,总共有几种走法? void print(int x) { printf("%d ", x); } void lou...
  • x313695373
  • x313695373
  • 2011-09-27 19:29:49
  • 2548
    个人资料
    等级:
    访问量: 1910
    积分: 159
    排名: 113万+
    文章分类
    最新评论