放苹果
来源:互联网 发布:java 线程状态 编辑:程序博客网 时间:2024/06/10 12:21
题目:给定n个苹果和m个盘子,问有多少种放苹果的方法,盘子允许为空,T组测试数据。
测试数据:
1
7 3
8
思路:假如m>n,则必有m-n个盘子为空,等价于fun(m,m);
假如m<=n,假设每个盘子都有一个,则放法等价于fun(m-n,n);
假设至少有一个盘子是空的,则放法等价于fun(m,n-1);
所以总得放法等价于fun(m,n) = fun(m,n-1)+fun(m-n,n);
代码如下:
#include<stdio.h>int fun(int m,int n) { if(m==0||n==1) return 1; if(n>m) return fun(m,m); else return fun(m,n-1)+fun(m-n,n);}int main(){ int T,m,n; scanf("%d",&T); while(T--) { scanf("%d%d",&m,&n); printf("%d\n",fun(m,n)); }}
阅读全文
0 0
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 第一次使用支付接口(银联接口)
- 面向对象
- Java虚拟机知识介绍(一)
- 大数据算法导论第二周
- 将证件信息转化为文字的移动端证件识别
- 放苹果
- [LeetCode] Partition to K Equal Sum Subsets
- 选择排序之简单选择排序
- 2017-11-19周总结
- android studio 将引用第三方jar和.so的项目打包jar并混淆
- Treasure Exploration
- 剑指Offer 面试题19:正则表达式匹配 Java代码实现
- Swift4.0 --- setValuesForKeys() 无法赋值问题
- NOIP2017翻车记