整数划分

来源:互联网 发布:java uml建模工具 编辑:程序博客网 时间:2024/05/16 17:10
//此问题可以看做苹果问题的简化,就是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;}