【问题描述】
楼梯有n阶台阶,上楼可以一步上1阶,2阶或3阶,编程计算共有多少种不同的走法?
【算法分析】
此题采用递归方法实现。分别给出了C++及C语言代码。
此题的动态规划写法参见:https://blog.csdn.net/hnjzsyjyj/article/details/114990369
【C++代码】
#include <bits/stdc++.h>
using namespace std;
int ups(int n) {
if(n<=2) return n;
if(n==3) return 4;
int ans=0;
ans=ups(n-1)+ups(n-2)+ups(n-3);
return ans;
}
int main() {
int n;
scanf("%d",&n);
printf("%d",ups(n));
return 0;
}
/*
in:5
out:13
in:6
out:24
*/
【C语言代码】
#include <stdio.h>
#include <stdlib.h>
int ups(int n) {
if(n<=2) return n;
if(n==3) return 4;
int ans=0;
ans=ups(n-1)+ups(n-2)+ups(n-3);
return ans;
}
int main() {
int n;
scanf("%d",&n);
printf("%d",ups(n));
return 0;
}
/*
in:5
out:13
in:6
out:24
*/