登陆 | 注册
你现在的位置:我的论坛 >> 计算机基础 >> 求数值在 1 - 50 之内的任意5个数之和为100 的所有组合个数
求数值在 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
发表回复


Copyright (C) 2004-2008, All Rights Reserved