您的位置:首页 > 其它

宜信笔试题 把m升水倒入n个杯子

2016-03-29 20:10 197 查看
把m升水倒入n个杯子,如7升水倒入3个杯子,511,421,331分配都可以。但是421和214,151和511之类的视为同一种分配方法。杯子可以放空,如700也算一种方法





#include<stdio.h>

//把m升水倒入n个杯子,每个杯子的水不超过MTU。
int try(int m,int n,int MTU)
{
//printf("%d,%d,%d\n",m,n,MTU);
if(m>n*MTU)
return 0;
else if(m==0)
return 1;
if (MTU>m)
return try(m,n,m);
else{
int i=MTU,all=0;
while(i>0){
all += try(m-i,n-1,i);
i--;
}

return all;
}

}

int main(void)
{
int line;
int m,n,k=0;
scanf("%d",&line);
while(line>0){
scanf("%d%d",&m,&n);
k=try(m,n,m);
printf("%d\n",k);
line--;
}

return 0;
}


结果如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: