分梨

问题 G: 分梨

时间限制: 1 Sec  内存限制: 32 MB
[提交][状态][讨论版]

题目描述

zzq非常喜欢吃梨,有一天他得到了ACMCLUB送给他的一筐梨子。由于他比较仗义,就打算把梨子分给好朋友们吃。现在他要把M个梨子放到N个盘子里面(我们允许有的盘子为空),你能告诉zzq有多少种分法吗?(请注意,例如有三个盘子,我们将5,1,11,1,5,视为同一种分法)

输入

输入包含多组测试样例。每组输入的第一行是一个整数t
接下来t行,每行输入两个整数MN,代表有M个梨和N个盘子。(MN均大于等于0

输出

对于每对输入的MN,输出有多少种方法。

样例输入

1

7 3

样例输出

8

 

题意概括:

  有m个梨和n个盘子,计算有多少种放法

解题分析:

  用递归实现每一种情况的遍历,同时要注意5,1,11,5,1是一种放法,还有t是有多组的

 

测试样例:

3

5 0

1 2

3 1

2

4 9

6 6

测试样例输出:

0

1

1

5

11

 

代码:

 1 #include<stdio.h>
 2 
 3 int count(int x, int y)
 4 {
 5     if(y == 1 || x == 0)
 6         return 1;
 7     if(x < y)
 8         return count(x, x);
 9     return count(x, y-1) + count(x-y, y);
10 }
11 
12 int main()
13 {
14     int T,n, m;
15     int a[10][10];
16     while(scanf("%d", &T) != EOF){
17         while(T--){
18             scanf("%d%d", &m, &n);
19             if(0 == n){
20                 printf("0\n");
21                 continue;
22             }
23             printf("%d\n", count(m, n));
24         }
25     }
26     return 0;    
27 } 

 

转载于:https://www.cnblogs.com/didideblog/p/7221522.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值