题目:给定一个整数n,每次只能走一个或者两个台阶,求一共有多少种解法。
输入:若干个整数n
输出:每个整数所对应的方法数
解析:这是一个经典的递归题目。每次只能走一个或两个台阶。每走一次,那么问题就f(n)可以化为走f(n-1)+f(n-2)了。最后只要再注意一下边界条件,问题就解决了。
#include <iostream>
using namespace std;
int f(int n);//n个台阶会有多少种走法
int main() {
int n;
while(!cin.eof()){
cin >> n;
cout << f(n) << endl;
}
return 0;
}
int f(int n){
if(n == 0) return 1;
if(n == 1) return 1;
return f(n-1)+f(n-2);
}