设f(n)表示走法随阶梯数量n变化的函数
找规律:
1级阶梯f(1) = 1种走法
2级阶梯f(2) = 2种走法
3级阶梯f(3) = f(2) + f(1) = 3种走法
4级阶梯f(4) = f(3) + f(2) = 5种走法
...
n级阶梯f(n) = f(n - 1) + f(n - 2)种走法
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
ll f[100];//用long long存储上楼方式总数,避免数据溢出
int main(){
f[1] = 1, f[2] = 2;
//打表用空间换时间
for(int i = 3; i <= 90; i++){
f[i] = f[i - 1] + f[i - 2];
}
int n;//楼梯阶数
//输入多组数据
while(~scanf("%d", &n)){
printf("%lld\n", f[n]);//输出
}
return 0;
}
京公网安备 11010502036488号