#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

京公网安备 11010502036488号