动态规划算法在不同阶楼梯中的走法

有一座高度是n级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。

#include<stdio.h>

/*自顶向下递归调用法
int f(int i)
{
  
  if(i==1)
     return 1;
  else if(i==2)
     return 2;
  else 
return f(i-1)+f(i-2);
}
 
int main()
{
  int n;
  printf("input the number:");
  scanf("%d",&n);
  printf("%d\n",f(n));
  return 0;
}
*/


/*自底向上动态规划法
int main()
{
  int i=1,k;
  int j=2;

  int temp=0;

  printf("input the number:");

  scanf("%d",&k);

  for(k=3;k<=10;k++)
  {
   temp=i+j;
   i=j;
   j=temp; 
  }
  printf("%d\n",temp);
  return 0;
}

*/

递归调用算法的时间复杂的O(2的n次方),动态规划算法时间复杂的O(n)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值