题解 | N阶楼梯上楼问题
N阶楼梯上楼问题
https://www.nowcoder.com/practice/c978e3375b404d598f1808e4f89ac551
#include <iostream> using namespace std; int n,res; void dfs(int u){ if(n==0){ res++; return; } if(n<0)return; for(int i=1;i<=2;i++){ if(n>=i){ n-=i; dfs(u+1); n+=i; } } } int main() { while (cin >> n) { res = 0; dfs(0); cout<<res<<endl; } } // 64 位输出请用 printf("%lld")
【算法思路】:深搜dfs