//此问题可以看做苹果问题的简化,就是n个苹果放n个盘子,但要考虑到所有情况,还要结合此问题实际。
#include <stdio.h>
int fun(int n,int m)
{
if(n < 1|| m < 1)
return 0;
if(n == 1||m == 1)
return 1;
if(n < m)
return fun(n,n);
if(n == m)
return fun(n,m-1)+1;
if(n > m)
return fun(n,m-1) + fun(n-m,m);
}
int main(void)
{
int n,m;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
printf("%d\n",fun(m,m));
}
return 0;
}
整数划分
最新推荐文章于 2023-12-05 21:39:31 发布