| 求数值在 1 - 50 之内的任意5个数之和为100 的所有组合个数 | |
| 数值:1,2,3,4,5,6....48,49,50 取其中的任意5个数,但这5个数相加之和要等于100,并将所有这种组合罗列 为了避免过滤不同顺序的同一组合在设计的时候必须要考虑1=<a<b<c<d<e<=50 解: 1=<a<b<c<d<e<=50 => a<100/5 => b<(100-a)/4 ... ∴ 有下面的程序 static void Main() { int a, b, c, d, e; for (a = 1; a < 20; a++) for (b = a + 1; b < (100 - a) / 4 && b<50; b++) for (c = b + 1; c < (100 - b - a) / 3 && c<50; c++) for (d = c + 1; d < (100 - c - b - a) / 2 && d<50; d++) for (e = d + 1; e < (100 - d - c - b - a) && e<50; e++) if (a + b + c + d + e == 100) Console.WriteLine("{0}+{1}+{2}+{3}+{4}=100", a, b, c, d, e); } |
|
| 楼主 创建:08-04-29 13:35:38 更新:08-04-29 13:35:38 | |
| 发表回复 | |