21xrx.com
2025-03-31 08:19:35 Monday
文章检索 我的文章 写文章
C++实现爬楼梯算法
2023-06-29 09:06:06 深夜i     29     0
C++ 爬楼梯算法 递推 循环 递归

爬楼梯是常见的数学问题,也是算法设计中经常遇到的问题之一。在C++中,我们可以利用递归或循环两种方法来实现爬楼梯算法。

一、递归方法:

递归方法是直接定义函数,不断调用自身来解决问题,代码如下:

int climbStairs(int n) {
  //当n为1和2时,结果为1和2,不用递归,可以直接返回
  if(n==1) return 1;
  if(n==2) return 2;
  //当n大于2时,返回n-1和n-2的和
  return climbStairs(n-1)+climbStairs(n-2);
}

二、循环方法:

循环方法则可以利用数组或变量来存储上一次的结果,以此来求出当前的结果。代码如下:

int climbStairs(int n) {
  //当n为1和2时,结果为1和2,不用循环,可以直接返回
  if(n==1) return 1;
  if(n==2) return 2;
  //先定义第一层与第二层的结果为1和2
  int a = 1, b = 2;
  //循环计算每一层的结果,i从3开始
  for(int i=3;i<=n;i++){
    int temp = a+b;
    a = b;
    b = temp;
  }
  return b;
}

以上两种方法都可以实现爬楼梯算法,递归方法相对简单但容易造成时间复杂度的增加,循环方法则更加清晰、易懂,也更加适合解决大量数据的问题。

  
  

评论区

请求出错了