放苹果——华为机试题
来源:互联网 发布:淘宝怎么查看消费记录 编辑:程序博客网 时间:2024/06/08 04:52
题目描述
题目描述
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
输入
每个用例包含二个整数M和N。0<=m<=10,1<=n<=10。
样例输入
7 3
样例输出
8
/**
* 计算放苹果方法数目
* 输入值非法时返回-1
* 1 <= m,n <= 10
* @param m 苹果数目
* @param n 盘子数目数
* @return 放置方法总数
*
*/
public static int count(int m, int n)
输入描述:
输入两个int整数
输出描述:
输出结果,int型
输入例子:
7 3
输出例子:
8
//看成组合问题,从一个数组中选不多余n个数,使其和为m。使用dfs
#include <iostream>#include <vector>using namespace std;void print(vector<int>& s){for(int i=0;i<s.size();i++)cout<<s[i]<<" ";cout<<endl;}void dfs(int m,int n, int i,int & ans,int &sum,int start,vector<int>& s){ if(i>=n) return ; for(int j=start;j<=m;j++){ s.push_back(j); sum+=j; if(sum==m) { ans++; //print(s);} dfs(m,n,i+1,ans,sum,j,s); sum-=j; s.pop_back(); }}int main(){ int m,n,ans,sum; while(cin>>m>>n) { ans=sum=0;vector<int> s; dfs(m,n,0,ans,sum,1,s); cout<<ans<<endl; } return 0;}
0 0
- 放苹果——华为机试题
- 华为机试——放苹果
- 华为OJ——放苹果
- 华为OJ——放苹果
- 华为机试---放苹果
- 【华为机试】放苹果
- 华为机试:放苹果、字符统计
- 【华为oj】放苹果
- 华为oj_放苹果
- 华为oj 放苹果
- 华为oj 放苹果
- 【华为 OJ】 放苹果
- 华为上机--放苹果
- 【华为OJ】放苹果
- 华为OJ:放苹果
- 华为OJ放苹果
- 华为OJ:2041 放苹果
- 华为OJ(放苹果)
- struts2 学习日志1
- android四种常见布局
- Java集合简述
- CCS6编译出现的问题总结及解决办法
- 排列组合的解决办法
- 放苹果——华为机试题
- 虚幻引擎源码分析(4)
- 如何再IDEA 上使用java web开发
- NFC的读写卡模式——前台调度系统
- Oracle11g字符集AL32UTF8与ZHS16GBK相互转换
- 报错Ignoring InnerClasses attribute for an anonymous inner class,但编译运行正常
- leetcode刷题之旅——70. Climbing Stairs
- Hibernate5.2.4注解
- UVA 11624