#include #include #include #include #include using namespace std; int a[100][100]; int F(int n,int m) { if(a[n][m]>0){ return a[n][m];//记忆搜索 } if(n==1) return a[1][m]=1; if(m==1) return a[n][1]=1; if(nm) return a[n][m]=F(n,m-1)+F(n-m,m); } int GD(int x) { int i; int count=0; for(i=1;i<=x/2;i++) { if(x%i==0) count++; } return count; } int main() { int n; while (scanf("%d",&n)!= EOF) { memset(a,-1,sizeof(a)); printf("%d\n",F(n,n)-GD(n)-1); } return 0; }
点赞 评论

相关推荐

想run的马里奥在学...:这个学历帮你扫平百分之80的障碍,投就完了,这会找不到就等3月暑期一样能找到
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务