【每日面试题】输入n求和为m的所有组合
来源:互联网 发布:南方公园真理之杖mac 编辑:程序博客网 时间:2024/06/06 15:49
题目:输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
分析,由该题可知是典型的背包问题,根据该数是否加入进行递归运算。
代码:
//典型背包问题
void print(int n,int m,vector<int>&list)
{
if(n==0) return;
if(m==0)
{
for(int i=0;i<list.size();i++)
cout<<list[i]<<"\t";
cout<<endl;
return;
}
list.push_back(n);
print(n-1,m-n,list);
list.pop_back();
print(n-1,m,list);
}
void printBefore(int n,int m)
{
vector<int> list;
if(n==0) return;
if(n>=m)
{
cout<<m<<endl;
n=m-1;
}
print(n,m,list);
}
- 【每日面试题】输入n求和为m的所有组合
- 面试题之输入n求和为m的所有组合
- 输出1到N之间所有相加等于M的数字组合(背包问题)求相加为M的所有组合--微软酷派经典面试题
- 【每日面试题】输入一个正数n,输出所有和为n连续正数序列
- 【每日面试题】输入一字符串,输出该字符串的所有组合
- 输入两个整数值n和m,求出整数1到n之间的和为m的所有组合
- 输入两个整数值n和m,求出整数1到n之间的和为m的所有组合
- 输入两个整数值n和m,求出整数1到n之间的和为m的所有组合
- 输入两个整数n和m,从数列1,2,3,...,n中选出和为m的所有组合
- 19. 中兴面试题:输入两个整数n和m, 从数列1,2,...,n中任意选择几个数,使其和等于m, 要求编写程序输出所有的组合
- 求和为n的连续正整数【经典面试题】
- 输入n,m,从1-n个数字里输出和为m的组合
- 输入m和n,从1,2,3...n中找出和为m的组合
- 中兴面试题之求所有组合使之和为m
- 网易面试题 输入一个正数n,输出所有和为n连续正数序列
- 从1..n中间选取任意组合,其和为m,列出所有组合的算法。
- 求和(1,2,3.....n使其和为m的所有情况)
- poj 1564 Sum It Up 【DFS】【求和为N的所有数的组合】
- for循环并行化的约束条件
- Mars老师的Android学习基本路线
- 25岁的你在干什么?
- JS加载和读取XML文件
- 用户请求在struts2框架中的处理过程
- 【每日面试题】输入n求和为m的所有组合
- Android JNI代码
- java最基础类的设计之判断一个类是不是一个设计良好的类
- c:foreach遍历和s:iterator遍历对比
- [wp7游戏]wp7~~飞行射击精品游戏~~集合贴
- dom
- javascript中的自执行匿名函数
- 不安装apk调用apk的方式
- Daily report 2012年3月9日