P1285 达朗贝尔的台阶
达朗贝尔是法国数学家,哲学家。当牛顿和莱布尼兹一直在微积分的的基本问题上犯错误时,罗尔指着牛顿的鼻子说:“你的微积分就是小的谬误加起来的大谬误”。牛顿哑口无言,这时候达朗贝尔站了出来:“我虽然不能解释为什么微积分是正确的,但是只有向前进我们才能看见希望!” 这句话激励了一代又一代的人。达朗贝尔小时候被母亲抛弃在教堂附近的一个台阶上,被一位玻璃匠收养,后来这个教堂的名字就成了他的教名 。当他出名后他的母亲回来找他,达朗贝尔对他的母亲说:“you are my stepmother” 一语双关讽刺了他势力的母亲
达朗贝尔留下的是一个关于台阶的问题。
如果我每一步只能迈上 1 个或者 2 个台阶。先迈左脚,然后左右交替,最后一步迈右脚,也就是说一共要走偶数步,那么迈上 n 级台阶,有多少种不同的上法呢?
第一行一个整数 n,表示台阶的数量。
结果占一行,表示用偶数步,迈上 n 级台阶不同的方案数目,测试数据保证结果不超出 int 范围
10
44
这题第一眼就是直接写个递归就能搞出来了。但是会TLE
附上简单递归代码
#include <iostream>
using namespace std;
void dfs(int jie,int bu);
int kind;
int main(void){
int n;
while(cin >> n){
dfs(n,0);
cout << kind << endl;
kind = 0;
}
return 0;
}
void dfs(