21xrx.com
2024-09-19 09:41:51 Thursday
登录
文章检索 我的文章 写文章
C++实现爬楼梯算法
2023-06-29 09:06:06 深夜i     --     --
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;

}

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复