输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
来源:互联网 发布:伊朗女孩 知乎 编辑:程序博客网 时间:2024/05/16 23:49
新手学习编程,简单的递归,把所有的分支都遍历到。细节的调试也稍微花了一点时间。
#include<iostream>
using namespace std;
int *flag = NULL;
int n,m;
void PrintOut(int index)
{
int i;
for(i=1;i<index;++i)
{
if(flag[i])
cout<<i<<" ";
}
cout<<endl;
}
void BagProblem(int sum,int index)
{
if(sum == m)
{
PrintOut(index);
return;
}
if(index>n || sum>m)
return ;
flag[index] = 0;
BagProblem(sum,index+1);
flag[index] = 1;
BagProblem(sum+index , index+1);
}
int main()
{
while(scanf("%d%d",&n,&m)==2)
{
if(m<=0)
continue;
if(n>=m)
{
cout<<m<<endl;;
n = m-1;
}
if(n<=0)
continue;
flag = (int *)malloc((n+1)*sizeof(int));
memset(flag,0,(n+1)*sizeof(int));
BagProblem(0,1);
free(flag);
flag = NULL;
}
return 0;
}
- 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来.
- 输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
- 输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
- 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于m ,要求将其中所有的可能组合列出来.
- 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于m ,要求将其中所有的可能组合列出来.
- 21.输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
- 输入两个整数n和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m,要求将其中所有的可能组合列出来。
- 输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
- 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来.
- 输入两个整数n和m,从数列1,2,3....n中随意取几个数,使其和等于m,要求将其中所有的可能组合列出来
- 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
- 输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
- 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来.
- 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来
- 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来.
- 输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
- 输入两个整数 n 和 m,从数列 1,2,3.......n 中随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来.
- 输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来
- 【rmzt:成龙历险记动漫主题】
- Android startActivityForResult的使用
- 【安博培训技术】Java1 Java面向对象20130918
- Uva - 10652 - Board Wrapping
- 【安博培训技术】Java2 数组、字符串、常用工具类20130918
- 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
- 【安博培训技术】Java3 集合、泛型 20130919
- 【安博培训技术】Java4 异常处理 20130919
- 总结(9月21日)
- tomcat打开jsp文件中文乱码问题之解决
- 【安博培训技术】Java5 IO流 20130920
- GC日志分析
- Codeforces Round #201 (Div. 2) A. Difference Row
- 【安博培训技术】Java6 JDBC编程 20130921