如题,一个网友问的,我又去问其他的网友,再网上搜索,发贴问,最后终于解决,不过目前还没有明白为什么要这样写,以下是代码:
- class Program
- {
- static void Main(string[] args)
- {
- double[] numbers = new double[] { 258.5, 1229.1, 39.6, 660.3, 660, 660, 165, 165, 3060, 270, 4.8, 440, 279.06, 47.89, 38.02, 600, 286, 63.36, 1530, 1320, 1344, 3954 };
-
-
-
-
- Console.WriteLine("原数列:258.5,1229.1,39.6,660.3,660,660,165,165,3060,270,4.8,440,279.06,47.89,38.02,600,286,63.36,1530,1320,1344,3954\n\n");
-
-
- SumFinder.FindSum(numbers, 7785.52);
-
-
-
- }
- }
-
-
-
-
- static class SumFinder
- {
- public static void FindSum(double[] numbers, double targetSum)
- {
- int elementCount = numbers.Length;
- int lastCombination = 2 << elementCount - 1;
- int firstCombination = 1;
- double sum;
- for (int i = firstCombination; i <= lastCombination; i++)
- {
- sum = 0;
- for (int pos = 0; pos < elementCount; pos++)
- {
- if ((i & (1 << pos)) != 0)
- sum += numbers[pos];
- }
- if (sum == targetSum)
- {
- string str = "";
- for (int pos = 0; pos < elementCount; pos++)
- {
- if ((i & (1 << pos)) != 0)
- {
- str += numbers[pos]+" + ";
- }
- }
- Console.Write(str.Substring(0,str.Length-3)+" = " + targetSum);
- Console.WriteLine();
- }
- }
- Console.WriteLine("结束");
- Console.ReadLine();
- }
- }
分享到:
相关推荐
从一堆数据中,要求出一个指定和值的组合,在财务审计中时常遇到这个头痛的问题,EXCEL中可以通过VBA的宏命令,快速解决这个头痛的问题。本文件,简单易学,上手快速,操作便宜,很值得推荐使用。
从一组数据中 返回组合的和等于某个值 的所有组合
给定一个数组,找出其中3个相加等于0的组合
NULL 博文链接:https://xieyan30.iteye.com/blog/1814117
两个数相加c语言两个数相加c语言两个数相加c语言
将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 **********************************...
将CAD中选中的数字相加,如“加50”、“借1000”等
将两个多位十进制数相加,要求加数和被加数均以ASCII码形式各自顺序存放以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处
两个String类型的数字相加,不损失精度,自己粗略写了个算法,如果有兴趣可以参考一下。
c#任意数字相加
用两个链表组织两个一元多项式,将相加的结果保存在前一个链表中。 输入 m(项数) c1(第一项系数) e1(第一项指数) c2 e2 ....... cm(第m项系数) em(第m项指数) n(项数) c1(第一项系数) e1(第一项指数) c2 e2 ....
MATLAB实现两数相加的功能,前两个文本框显示数字,按钮按下后,可在第三个文本框中显示计算结果。
该程序为汇编语言编写,功能是将两个多位十进制数(如四位)相加,要求被加数、加数以ASCII码形式按顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前)。将相加结果仍以常用十进制数形式显示在屏幕上。
# 问题描述: ...将两数相加返回一个新的链表 # 你可以假设除了数字 0 之外,这两个数字都不会以零开头 # 示例: # 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) # 输出:7 -> 0 -> 8 # 原因:342 + 465 = 807
用eclipse直接导入就能运行,实现在一台机器上远程调用服务器上的方法。
汇编语言 多个数相加球平均汇编语言 多个数相加球平均汇编语言 多个数相加球平均汇编语言 多个数相加球平均
基于CSA原理,使用verilog实现7个数相加
找出哪几个数值的和接近目标值,给定一组数,找出和接近目标值的所有组合。
两个长度不同的链表存储一些数字,将链表中对应位置的数相加并存储在新链表里
数字相加.lsp,可以把数字直接加起来的