输入两个整数值n和m,求出整数1到n之间的和为m的所有组合
来源:互联网 发布:imagex 系统还原软件 编辑:程序博客网 时间:2024/05/16 15:40
输入两个整数值n和m,求出整数1到n之间的和为m的所有组合
例:
输入:n=10 m=10
输出:
1 2 3 4
1 2 7
1 3 6
1 4 5
1 9
2 3 5
2 8
3 7
4 6
10
思路:
1.输出1-n的全排列2.限制条件:前i项等于m,则输出前i项,否则不输出3.搜索完数值j后,不再后续搜索不再包含j(搜索完包含1的元素后,后续搜索不再搜索元素1;搜索完包含数值2的元素后不再搜索元素2)
代码如下:
#include <stdio.h>#include <iostream>using namespace std;//打印结果void print_res(int *a,int n){ for(int i=1;i<n;i++) printf("%d ",a[i]); printf("\n");}//递归搜索void dfs(int *data,int *index,int step,int n,int m,int sum){ int i; if( sum > m)//不再查找 return; else if(sum == m)//输出 { print_res(data,step); return; } for(i=data[step-1]+1;i<=n;i++)//关键 { if(index[i]==0)//该元素没有使用过 { data[step]=i; index[i]=1; dfs(data,index,step+1,n,m,sum+i); index[i]=0; } } return;}int main() { int m,n; cin>>n>>m; int *index=new int[n+1]; int *data=new int[n+1]; for(int i=0;i<n+1;i++) { index[i]=0; data[i]=0; } dfs(data,index,1,n,m,0); delete [] index; delete [] data; return 0;}
1 0
- 输入两个整数值n和m,求出整数1到n之间的和为m的所有组合
- 输入两个整数值n和m,求出整数1到n之间的和为m的所有组合
- 输入两个整数值n和m,求出整数1到n之间的和为m的所有组合
- 输入两个整数n和m,从数列1,2,3,...,n中选出和为m的所有组合
- 动态规划实现:给定整数m , 取若干个1到n的整数可求和等于整数m,编程求出所有组合的个数。
- 输入两个整数n和m, 从数列1,2,...,n中任意选择几个数,使其和等于m, 要求编写程序输出所有的组合
- 输入两个整数n和m, 从数列1,2,...,n中任意选择几个数,使其和等于m, 要求编写程序输出所有的组合
- 输入两个整数n和m,从数列1,2,3...n中随意取几个数,使其和等于m,要求列出所有的组合
- 输入两个整数n和m, 从数列1,2,...,n中任意选择几个数,使其和等于m, 要求编写程序输出所有的组合
- 9. 描述 计算非负整数 m 到 n(包括m 和 n )之间的所有奇数的和,其中,m 不大于 n,且n 不大于300。例如 m=3, n=12, 其和则为:3+5+7+9+11=35。 输入 两个数
- 写正确函数需要注意的地方:输入两个整数n和m,从数列1,2,3,...n中随意取几个数,使其和为m,列出所有可能组合
- 输入两个整数n和m,从数列1,2,······,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 ,要求将其中所有的可能组合列出来.
- 401解析错误
- php stbClass object转换为数组
- 堆内存与栈内存
- 第7章 确保Web安全的HTTPS(1) HTTP的缺点
- RuntimeException Java运行时异常
- 输入两个整数值n和m,求出整数1到n之间的和为m的所有组合
- 统计学习方法 第1章 概论
- demon日常的刷题——贪心(c版本)
- 图像取证:源识别和伪造检测(Image Forensics: source identification and tampering detection)
- CentOS---本地yum源
- Spring统一异常管理
- CSDN-Markdown语法--缩进、图片居中、字体、字号
- linux top命令详解
- linphone-自动接听视频电话