#include <iostream> using namespace std; int result = -1; void cal(int cur,int total,int pre) { if (cur>total) { result++; return; } //result++; if (pre==1) cal(cur+1,total,0); else { cal(cur+1,total,0); cal(cur+1,total,1); } } int main() { int count; cin>>count; int i = 1; while (count--) { int len; cin>>len; result = 0; cal(1,len,0); cout<<"Scenario #"<<i++<<":"<<endl; cout<<result<<endl<<endl; } } O(2^n) n<45 不行吗?