把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?

#include
#include
int c;
void count(int m,int n,int start)  
{  
   int i,j;
   if(n==1)  c++;  
   else if(m   else
   {
    for(i=start;i<=m/n;i++)
    {
    printf("i=%d  m=%d n=%d\n",i,m,n);
    count(m-i,n-1,i);
    //printf("m=%d n=%d\n",m,n);
    }
   }
}  


int main()
{
int t,m,n;
scanf("%d",&t);
while(t)
{
c=0;
scanf("%d %d",&m,&n);
count(m,n,0);
printf("%d\n",c);
t--;
}
return 0;
}

你可能感兴趣的:(把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?)