背包问题。  
  不过就这道题目本身而言,由于集合a中只要6个元素,而不是成千上万,所以可以使用更直观的办法:  
  只要你能通过程序给出数组a中元素所组成的集合的所有的子集合(幂集),那么只需在这些集合中搜索等于10的就可以了。  
  而6个元素构成的集合的幂集可以通过6位二进制数来表示,对于从0到2的6次方减1(63)之间的所有的数,让其每一位比特位代表一个元素,当该位为0时 表示该数所表示的子集中没有这个元素,否则表示拥有这个元素,这样就能对应出所有的组合,然后在这些所有的组合中检测和是否为10就可以了。

 1 #include   <stdio.h>
 2
 3   #define   ARRAY_SIZE 6
 4   #define   MAX_NUM (1<<ARRAY_SIZE)
 5   int   main()
 6   {
 7   int   i,   j;
 8   int   sum;
 9   int   a[ARRAY_SIZE]   =   {3,5,2,4,1,8};
10   int   count   =   0;
11
12   for(i   =   0;   i   <   MAX_NUM;   i++)
13   {
14   sum   =   0;
15   for(j   =   0;   j   <   ARRAY_SIZE;   j++)
16   {
17   if(i   &   (1   <<   j))
18   sum   +=   a[j];
19   }
20
21   if(10   ==   sum)
22   {
23   printf("%d:   ",   ++count);
24   for(j   =   0;   j   <   ARRAY_SIZE;   j++)
25   {
26   if(i   &   (1   <<   j))
27   printf("%d   +   ",   a[j]);
28   }
29   printf("\b\b=   10.\n");
30   }
31   }
32   printf("\nTotal:   %d.\n",   count);
33
34   return   0;
35   } 

来源:http://xiaozunyan.blog.sohu.com/3534370.html

(转载) 数组a[]={3,5,2,4,1,8},要求从a中找出所有“和”等于10的子集相关推荐

  1. 从一个数组中找出 N 个数,其和为 M 的所有可能--最 nice 的解法

    比起讨论已经存在的大牛,我们更希望有更多有潜力的前端小伙伴成为大牛,只有这样,前端在未来才能够持续不断的发光发热. 故事的背景 这是一个呆萌炫酷吊炸天的前端算法题,曾经乃至现在也是叱咤风云在各个面试场 ...

  2. c++如何输入数组_从一个数组中找出 N 个数,其和为 M 的所有可能最 nice 的解法...

    编者按:本文由前端狂想录公众号授权奇舞周刊转载. 故事的背景 这是一个呆萌炫酷吊炸天的前端算法题,曾经乃至现在也是叱咤风云在各个面试场景中. 可以这样说,有 90% 以上的前端工程师不会做这个题目. ...

  3. 改进,从一个数组中找出 N 个数,其和为 M 的所有可能

    特此说明,本文算法改自于<从一个数组中找出 N 个数,其和为 M 的所有可能--最 nice 的解法>一文.本文不同的是,采用二进制正序表示法,这种实现思路更直观.更简单些. 问题 从一个 ...

  4. 在数组中找出3个数使得它们和为0

    题目: 给定一个集合S,试找出3个数a, b, c,使得a+b+c=0.也即从集合中找出所有的和为0的3个数. 例如:集合S={-1,0, 1, 2, -1, 4},则满足条件的3个数有2对:(-1, ...

  5. 数据结构与算法--有序数组中找出和为s的两个数字

    有序数组中找和为s的两个数字 题目:输入一个递增排序的数组array, 和一个数字s, 在数组中找出两个数,使得这两个数的和是s,如果有多对,输出一对即可. 最简单方案 双循环,每次获取一个数据,和数 ...

  6. bat从数组中找出相同数字并删除_全网把Map中的hash()分析的最透彻的文章,别无二家...

    原文地址:https://mp.weixin.qq.com/s/qCHkzs4JPOipB-ZzqrfbeQ 作者: Hollis 你知道HashMap中hash方法的具体实现吗? 你知道HashTa ...

  7. 编写一个程序,从10亿个数字的数组中找出100个最大的数字

    本文翻译自:Write a program to find 100 largest numbers out of an array of 1 billion numbers I recently at ...

  8. php判断字符是否在某个数组_php:如何快速在数组array中找出以某字符串开头的值...

    我写了个函数,可以实现在数组中找出以某字符串开头的值. public static function arrayContainsValueStartingBy($haystack, $needle) ...

  9. 给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。

    问: /** 给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数 ...

最新文章

  1. 不同的source control下配置DiffMerge
  2. ICRA2021| 自动驾驶相关论文汇总
  3. 【代码实战】基于pytorch实现中文文本分类任务
  4. AntData.ORM框架 之 读写分离
  5. JScrollPane实现自动滚动到底部
  6. 【动态规划】不信看完你还不懂动态规划
  7. java数组创建后大小能改变吗,在Java中,数组创建成功以后,其大小(??? )(能/不能)改变...
  8. 计算机网络实验报告访问控制列表,电子政务《计算机网络实验》期末报告 07-访问控制列表实验报告.doc...
  9. 编辑器Ultraedit快捷键
  10. linux下的多线程
  11. Dotnet程序集自动生成版本号
  12. 9-2 go语言的调度器
  13. 服务器tomcat优化知识复习总结
  14. 20165221 JAVA第四周学习心得
  15. JVM 新生代老年代
  16. 静态页面评论处理以及列表处理
  17. LaTex数学符号表(数学中最常用的所有符号)
  18. 下载特定区域内街景照片数据 | Download Street View Photos within Selected Region
  19. eclipse windowJAVA版64位安装教程
  20. HTML5与flash播放器

热门文章

  1. AI突破难题才能预见未来
  2. 关于MNIST数据集的处理
  3. 加拿大工程院院士于非:互联—— 从质量、能源、信息到智能
  4. 11大领域148个热点和新兴前沿发布!有你的化学与材料研究方向吗?
  5. 10年内,19个关键技术将改变世界
  6. 如果机器能帮我们学习,那么有多少东西能够被遗忘?
  7. 深度学习背后的基础-神经网络揭秘
  8. 《中国大数据产业白皮书及百强榜单》:一览中国大数据产业发展全局
  9. 万物智联时代——2018年AIOT产业蓝皮书正式发布
  10. 干货 | 加速AI发展!一文了解GPU Computing