- 浏览: 75035 次
- 性别:
- 来自: 北京
/** *正整数n,m,从数列1、2、3、...、n中随意取几个数。使其和等于m *要求将其中所有可能的组合列出来 */ #include <stdio.h> #include <string.h> #include <stdlib.h> int *out; int out_size; void bag(int n, int m) { int i; if (n < 1 || m < 1 || (n == 1 && m != 1)) return; if (m == n) { out[n] = 1; for (i = 1; i <= out_size; i++) { if (out[i]) printf("%d ", i); } printf("\n"); out[n] = 0; } bag(n - 1, m); out[n] = 1; bag(n - 1, m - n); out[n] = 0; } int main() { int n, m; printf("Please input two num(n,m):"); scanf("%d%d", &n, &m); if (n > m) n = m; out_size = n; out = (int *)malloc((n + 1) * sizeof(int)); memset(out, 0, (n + 1) * sizeof(int)); bag(n, m); free(out); return 0; }
发表评论
-
排序算法---计数排序
2011-11-27 14:57 602#include <stdio.h> vo ... -
排序算法---归并排序
2011-11-26 19:33 740#include <stdio.h> vo ... -
排序算法---交换排序(冒泡排序、快速排序)
2011-11-26 19:32 699#include <stdio.h> vo ... -
排序算法---选择排序(简单插入排序、堆排序)
2011-11-26 19:31 643#include <stdio.h> vo ... -
排序算法---插入排序(简单排序、shell排序)
2011-11-26 19:29 643#include <stdio.h> vo ... -
删除字符串中的特定字符和重复字符
2011-11-26 13:45 660#include <stdio.h> vo ... -
Linux编程-多线程、同步和互斥(转载)
2011-11-14 15:27 1204http://www.cnblogs.com/skynet/a ... -
寻找字符串中的最大数字子串
2011-09-22 17:17 1513#include <stdio.h> int f ... -
删除子字符串
2011-09-21 15:27 599#include <stdio.h> #incl ... -
c语言随机数
2011-09-18 17:15 682#include <stdio.h> #i ... -
带头结点有序单链表的合并
2011-09-08 14:21 1178typedef int Item; typedef s ... -
链表逆序的递归/非递归算法
2011-09-01 23:37 1404/** *链表逆序的递归/非递归算法 */ # ... -
递归算法---字符串---全/部分组合和全排列
2011-08-30 23:01 1216#include <stdio.h> #i ... -
递归算法---字符串全组合(面试宝典)
2011-08-28 17:24 1249/** *求一字符串所有字串的组合 */ #i ... -
递归算法---求解多元一次方程
2011-08-28 10:38 1892/** * 求解x1+x2+x3+...+x10 = ... -
(zz)关于类的sizeof
2011-08-27 18:16 563http://blog.sina.com.cn/s/blog_ ... -
(zz)结构体字节对齐原则
2011-08-27 17:53 1575结构体默认的字节对齐一般满足三个准则: 结构体变量的首 ... -
list.h from linux-2.4
2011-08-25 09:59 601#ifndef _LIST_H_ #define _L ... -
The C Programming Lang (K&R) hash table
2011-08-25 09:52 929hash.h #include <stdio.h ... -
Josephus环
2011-08-23 11:20 695/*************************** ...
相关推荐
### 0-1 背包问题:递归算法 C语言实现 #### 一、问题背景及定义 0-1背包问题是一种经典的组合优化问题,在计算机科学与运筹学领域有着广泛的应用。该问题的基本形式如下:给定一组物品,每种物品都有自己的重量和...
汉诺塔问题是一个经典的递归算法问题,它涉及到三个柱子(塔)和若干个大小不一的圆盘。在初始状态下,所有圆盘按照大小顺序堆叠在第一个柱子(1号塔)上,大的在下,小的在上。目标是将所有的圆盘从1号塔移动到2号...
通过这个实验,学生不仅可以深入理解0-1背包问题,还能提升对回溯法和递归法的理解,以及如何在实际问题中应用这些算法。同时,实验报告的编写有助于培养学生的分析和总结能力,使他们能够清晰地阐述解决问题的过程...
**背包问题递归算法在C语言中的实现** 背包问题是一个经典的计算机科学问题,它涉及到在给定容量限制的背包中,如何选择物品以达到最大的价值。这个问题通常被用来模拟资源有限的情况下的决策优化,比如投资组合...
递归是解决0-1背包问题的一种常见方法。其基本思想是从最小规模的子问题开始,逐步构建到原问题的解决方案。对于第i个物品和容量为j的情况,我们可以有两种选择:要么选择该物品,要么不选择。如果选择,那么背包的...
总之,掌握背包问题的动态规划递归算法对于解决实际中的资源分配、任务调度等问题具有重要意义,同时也对理解和运用动态规划与递归算法有着基础性的帮助。通过深入理解并熟练运用这一算法,我们可以在面对复杂优化...
总的来说,这个C++实现的0-1背包问题动态规划算法不仅展示了如何利用动态规划解决问题,还提供了代码调试和测试的方法,是学习和理解动态规划算法的一个优秀实例。通过深入研究和实践,我们可以掌握这一重要的算法...
基于于C++的使用递归的方式解0-1背包
### 遗传算法与回溯算法在0-1背包问题中的应用 #### 一、0-1背包问题概述 0-1背包问题是一个经典的组合优化问题,在计算机科学和运筹学领域有广泛的应用。该问题的核心是:给定一组物品,每种物品都有自己的重量和...
- **动态规划**:一些优化问题,如斐波那契数列、背包问题、最长公共子序列等,可以通过递归配合记忆化搜索来解决,避免重复计算。 - **回溯法**:在解决组合优化问题,如八皇后问题、N皇后问题、迷宫问题时,递归...
- **动态规划**:许多动态规划问题可以转化为递归形式,如斐波那契数列、背包问题等。 - **回溯法**:在解决约束满足问题或寻找所有可能解的问题中,如八皇后问题,使用递归进行回溯搜索。 4. **递归效率与优化**...
基础算法-递归-杨鑫20191010.pptx,基础算法-递归-杨鑫20191010.pptx,基础算法-递归-杨鑫20191010.pptx
在0-1背包问题中,回溯算法通过试探性地选取物品并跟踪当前选择的效果,当发现当前路径无法达到最优解时,会撤销先前的选择,尝试其他可能的路径,这个撤销并尝试新路径的过程就是“回溯”。 算法设计通常包括以下...
本资源聚焦于一个经典的算法问题——0-1背包问题,并提供了使用回溯算法的解决方案。0-1背包问题是一个典型的组合优化问题,它源自实际生活中的物品打包场景:假设你有一个容量有限的背包,需要从中选择最有价值的...
这个例子展示了如何将大问题(计算`xn`)转化为小问题(计算`xn-1`),然后不断递归直到达到基本情况`n=0`,此时返回1。递归函数`xn`在`n=0`时停止递归,对于`n>0`,则返回`x * xn(n-1)`的结果。这就是递归的思想,...
1. **递归定义**:递归算法是函数或过程通过调用自身来解决问题的一种方法。每次调用都将问题分解为更小的部分,直到达到基本情况。 2. **基本原理**:递归算法通常包括两个部分:递归规则(如何将大问题分解为小...
1. **确定基本情况**:这是递归算法中最小的子问题,可以直接给出答案。 2. **定义递归规则**:如何将大问题分解为小问题,并通过这些小问题的解决方案组合成大问题的解决方案。 3. **分析递归深度**:递归调用的...
递归算法是一种基于函数自身调用解决问题的方法。在文件遍历中,递归算法通常从根目录开始,检查每个目录中的文件,如果文件不是目标,则继续进入子目录进行相同的操作,直到找到目标文件或遍历完整个文件系统。递归...
* 算法描述:0-1背包问题是子集选取问题。一般情况下,0-1背包问题是NP难的。0-1背包问题的解空间可用子集树表示。 * 在搜索解空间树时,只要其左儿子结点是一个可行结点,搜索就进入左子树。当右子树中有可能包含最...
### 使用回溯算法解决0/1背包问题 在计算机科学领域,背包问题是一类经典的组合优化问题,其中0/1背包问题是指给定一组物品,每个物品都有一个重量和一个价值,目标是在不超过背包总承重的情况下,尽可能使得所选...