long a[1000]; long comp(int n);
//(2) 改进的算法,用数组存储已经计算过的结果,避免重复计算
int main() { int n;
while (cin>>n)//^Z的效果 { memset(a,sizeof(a),0);//清零了??? a[1]=1; cout<<comp(n)<<endl; } return 0; }
long comp(int n) { long ans=1; if(a[n]>0)
return (a[n]);
else for( int i=1;i<=n/2;i++) ans+=comp(i);
a[n]=ans;//注意 return ans;
}
posted on 2009-05-08 15:43 whuzx 阅读(110) 评论(0) 编辑 收藏 举报