#include<cstdio>
#include<iostream>
using namespace std;
int ans[108][108];
int divid(int n,int m)
{
if(ans[n][m]!=-1)
return ans[n][m];
if(n==1||m==1)
{
ans[n][m]=1;
return 1;
}
if(m>n)
{
ans[n][m]=divid(n,n);
return ans[n][m];
}
if(m==n)
{
ans[n][m]=divid(n,m-1)+1;
return ans[n][m];
}
if(m<n)
{
ans[n][m]=divid(n-m,m)+divid(n,m-1);
return ans[n][m];
}
}
int main()
{
int n,sum;
memset(ans,-1,sizeof(ans));
while(scanf("%d",&n)!=EOF)
{
sum=divid(n,n);
printf("%d\n",sum);
}
return 0;
}
划分数(优化)
最新推荐文章于 2022-04-27 08:59:17 发布