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

简介: 背包问题。     不过就这道题目本身而言,由于集合a中只要6个元素,而不是成千上万,所以可以使用更直观的办法:     只要你能通过程序给出数组a中元素所组成的集合的所有的子集合(幂集),那么只需在这些集合中搜索等于10的就可以了。

背包问题。  
  不过就这道题目本身而言,由于集合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

img_e00999465d1c2c1b02df587a3ec9c13d.jpg
微信公众号: 猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

相关文章
|
机器学习/深度学习 算法 搜索推荐
Elasticsearch:崭新的打分机制 - Learning To Rank (LTR)
【6月更文挑战第8天】Elasticsearch 的 Learning To Rank (LTR) 打分机制通过机器学习改进搜索结果排序,以适应复杂需求和用户行为。传统打分基于词频等,而 LTR 利用训练数据学习更合理的排序,考虑文本、用户行为等特征。示例代码展示了如何在 Elasticsearch 中运用 LTR。尽管实施 LTR 需要高质量训练数据和专业选择算法,但它能处理模糊搜索、多因素排序,提升搜索体验,增强应用价值和竞争力。随着技术发展,LTR 将在 Elasticsearch 中发挥更大作用。
331 6
|
关系型数据库 PostgreSQL
PostgreSQL如何删除不使用的xlog文件
PostgreSQL如何删除不使用的xlog文件
317 0
|
机器学习/深度学习 算法 数据处理
盘点四种计算数组中元素值为1的个数的方法
盘点四种计算数组中元素值为1的个数的方法
264 0
|
机器学习/深度学习 存储 人工智能
智能家居技术的未来:从自动化到AI的演进
【8月更文挑战第11天】 本文将探索智能家居技术的演变历程和未来趋势,从最初的自动化设备到现在集成人工智能(AI)的系统。我们将深入了解AI如何改变我们与家居环境的互动,以及这些变化对日常生活的影响。文章旨在为读者提供智能家居技术发展的宏观视角,同时揭示AI在未来家居生活中扮演的核心角色。
233 2
|
缓存 开发者 测试技术
跨平台应用开发必备秘籍:运用 Uno Platform 打造高性能与优雅设计兼备的多平台应用,全面解析从代码共享到最佳实践的每一个细节
【8月更文挑战第31天】Uno Platform 是一种强大的工具,允许开发者使用 C# 和 XAML 构建跨平台应用。本文探讨了 Uno Platform 中实现跨平台应用的最佳实践,包括代码共享、平台特定功能、性能优化及测试等方面。通过共享代码、采用 MVVM 模式、使用条件编译指令以及优化性能,开发者可以高效构建高质量应用。Uno Platform 支持多种测试方法,确保应用在各平台上的稳定性和可靠性。这使得 Uno Platform 成为个人项目和企业应用的理想选择。
227 0
|
11月前
|
JavaScript
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
2511 0
|
弹性计算
阿里云服务器租用价格表,2024年5月最新报价整理
2024年5月,阿里云发布了最新的服务器租用价格表。其中,ECS云服务器2核2G3M带宽年费99元,ECS u1实例2核4G5M年费199元。轻量应用服务器香港30M带宽月费24元,年费288元。此外,还提供4核16G10M和8核32G10M的不同配置选项,价格分别为30元/月和109元/月起。阿里云服务器分为ECS和轻量应用服务器,当前优惠主要针对ECS。更多详细配置和价格可在官方页面查看。同时,阿里云有多种优惠活动,包括免费试用、学生优惠等,可在活动中心了解。
1279 9
|
机器学习/深度学习 编解码 人工智能
论文介绍:HigherHRNet——用于自下而上人体姿态估计的尺度感知表示学习
【5月更文挑战第22天】HigherHRNet是针对自下而上人体姿态估计的尺度感知方法,通过构建高分辨率特征金字塔,改善多尺度人体姿态估计的准确性。该论文提出的新架构在COCO测试集上提高了2.5%的中号人物平均精度,达到70.5%的AP,且在CrowdPose上超越所有自上而下方法,实现67.6%的AP。作者通过消融实验验证了各个组件的重要性,并指出未来可优化模型以适应更复杂场景。论文链接:[https://arxiv.org/abs/1908.10357](https://arxiv.org/abs/1908.10357)
187 1
|
运维 监控 NoSQL
RedisShake的基本原理
RedisShake的基本原理
620 0