动态规划——走台阶(入门1)

这是一个介绍动态规划基本概念的博客,通过走台阶的问题来解释动态规划的思想。文章阐述了当有n级台阶时,每次可以走一级或两级,如何计算不同走法的数量。通过分析得出状态转移方程dp[n] = dp[n-1] + dp[n-2],并给出了C++实现的代码示例,计算15阶台阶的走法。
摘要由CSDN通过智能技术生成
/*
题目:
有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法?

分析:
由分析可知:
n阶台阶,只可能是从n-1或是n-2的台阶上走上来的,台阶n的阶段依赖的是n-1和n-2的子阶段,
所以 状态转移方程为dp[n] = dp[n-1] + dp[n-2],属于最简单的动态规划问题 
*/
#include <iostream>
#define N 20        //台阶数为20
using namespace std;
int dp[N];          //全局数组,存放决策表
int fun(int n)      //返回台阶数为n的走法
{
if (n == 1 || n == 2)
{
return n;
}
dp[n-1] = fun(n-1);        //若不为1或2则进行递归计算
dp[n-2] = fun(n-2);
<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值