#include<stdio.h> #include<string.h> #include<stdlib.h> int main() { int c1[130],c2[130]; int n; while(scanf("%d",&n)!=EOF) { for(int i=0;i<=n;i++) { c1[i]=1; c2[i]=0; }//初始化第一个括号。 for(int i=2;i<=n;i++)//从第二个括号到第n个括号依次进行运算。 { for(int j=0;j<=n;j++)//第一个括号的内容 { for(int k=0;j+k<=n;k+=i)//后一个括号的内容 { c2[j+k]+=c1[j];//运算结果放到c2中。 } } for(int j=0;j<=n;j++)//每次合并完两个括号之后,就赋值一次,使得合并完的内容都放到第一个括号中。 { c1[j]=c2[j]; c2[j]=0; } } printf("%d\n",c1[n]); } // system("pause"); return 0; }