/*70. 爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
示例 1:
输入:2
输出:2
解释:有两种方法可以爬到楼顶。
1 阶 + 1 阶
2 阶
示例 2:
输入:3
输出:3
解释:有三种方法可以爬到楼顶。
1 阶 + 1 阶 + 1 阶
1 阶 + 2 阶
2 阶 + 1 阶*/
#include<stdio.h>
int main()
{
int n,dp[30],i,sum;
scanf("%d",&n);
dp[1]=1,dp[2]=2;//3.dp数组初始化
for(i=3;i<=n;i++)//1.dp[i]为第i个数的值为dp[i]
sum=dp[i-1]+dp[i-2];//2.递推公式
printf("%d",dp[n]); //4.确定遍历顺序,从前往后
}//5.距离推到
/*
for (int i = 3; i <= n; i++) {
int sum = dp[1] + dp[2];
dp[1] = dp[2];
dp[2] = sum;
}*///空间优化
动态规划.入门.2.爬楼梯
于 2022-01-17 18:35:00 首次发布