链家笔试2
把m升水倒入n个相同的杯子(假设容器足够大),允许有的容器是空的,共有多少种不同的倒法?(用k表示)5 1 1 和1 5 1 和1 1 5 是同一种倒法
输入:
第一行是测试数据的数目 x(0 <= x <= 20),以下每行均包含二个整数m和n,以空格分开,1<= m,n<=10
输出
对输入的每行数据m和n,用一行输出对应的k
输入示例:
1
7 3
输出示例:
8
#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; }
posted on 2017-09-02 21:41 粽子丫丫 阅读(...) 评论(...) 编辑 收藏