题目描述
小明面前有n级台阶,如果要求同时满足两个约束条件:①每步1阶或2阶;②必须是偶数步。那么小明从0阶上到n级台阶共有多少种不同的方案数?
输入
输入一个正整数n。
输出
输出同时满足两个条件,上到n级台阶的不同方案数。
样例输入
39
样例输出
51167078
经过分析可知走到n阶台阶基数解的个数等于走到n-1阶台阶与n-2阶偶数解之和
走到n阶台阶偶数解的个数等于走到n-1阶台阶与n-2阶基数数解之和
有了这些规律就可以求出n阶台阶的偶数解了。
题解
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int o(int n);
int i(int n){
if(n==2||n==1)
return 1;
return (o(n-1)+o(n-2));
}
int o(int n){
if(n==2)
return 1;
if(n==1)
return 0;
return (i(n-1)+i(n-2));
}
int main(){
int n;
int g;
cin>>n;
g=o(n);
cout<<g;
return 0;
}
谢谢大家的阅读。