动态规划
爬楼梯问题
爬楼梯的时候一次只能迈1级或2级台阶,假如一共有n级台阶的话,它一共有多少种方法能够爬到楼梯顶部呢?
输入格式:
第一行输入一个数n(n<=50),代表楼梯的级数。
输出格式:
第一行输出你的方法总数。
#include <cstdio>
#include <iostream>
int calMethod(int n){
if(n<0)
return 0;
if(n==1||n==0){
return 1;
}else{
return calMethod(n-1)+calMethod(n-2);
}
}
int main(){
int n;
scanf("%d",&n);
printf("%d",calMethod(n));
}
#include <bits/stdc++.h>
using namespace std;
int result[100];
int f(int n)
{
int res;
if(result[n]>=0) return result[n];
if(n==0||n==1) res=1;
else res=f(n-1)+f(n-2);
result[n]=res;
return res;
}
int main()
{
int i;
int n;
scanf("%d",&n);
for(i=0;i<=n;i++)
{
result[i]=-1;
}
printf("%d\n",f(n));
return 0;
}