本题利用了递推的思想,得出一个结论以后两个for循环即可
#include<bits/stdc++.h>
using namespace std;//利用了递推
int n;
int a[2000];
int main()
{
while(cin>>n) {
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i/2;j++)
a[i]=a[j]+a[i];
a[i]++;
}
cout<<a[n]<<endl;
memset(a,0,sizeof(a));
}
}/*f[1]=1
f[2]=2=f[1]+1
f[3]=2=f[1]+1
f[4]=4=f[1]+f[2]+1
f[5]=4=f[1]+f[2]+1*/