每一个状态都要由小于它一半的所有状态加在一起再加上它本身的状态再加上这个数本身,最后可得出答案
#include
#include
using namespace std;
#define Ex 5
int Arr[1000 + Ex] = {0};
void Deal()
{
for(int i = 1;i <= 1000; ++i){
int tmp = 1;
Arr[i] = i/2;
while(tmp <= i/2){
Arr[i]+=Arr[tmp];
tmp++;
}
}
}
int main()
{
int n;
while(scanf("%d",&n) == 1){
Deal();
printf("%d\n",Arr[n]+1);
}
return 0;
}