用c#做这个,a+b+C=50,2a+b+1/2c=100.(50>a>0,50>b>0,>50c>0).用c#运行出几种情况,每种情况的答案是什么
一点思路都没有,求解,谢谢。

解决方案 »

  1.   

    using System;namespace YangBo.Counting
    {
    class Counting
    {
    public static void Main(string[] args)
    {
    for(int a=0;a<50;a++)
    for(int b=0;b<50;b++)
    for(int c=0;c<50;c++)
    {
    if((a+b+c == 50) && (2*a+b+c/2 == 100))
    {
    Console.WriteLine(string.Format("a={0}; b={1}; c={2}",a.ToString(), b.ToString(), c.ToString()));
    }
    }
    }
    }
    }
      

  2.   

    int a, b, c;
    for (a = 1; a < 50; a++)
        for (b = 1; b < 50; b++)
            for (c = 1; c < 50; c++)
            {
                  if ((a + b + c == 50) && (2 * a + b + c / 2==100))
                      // print a, b, c
             }
    不过这个方程组是无解的:)
      

  3.   

    回头想想其实好简单,以下是答案
    private string strCompute()
    {
    // 2a-c=50 a>25 为必须
    string strReturn = "";
    int intA = 0;
    int intB = 0;
    int intC = 0;
    //intC 的条
    for (int i=0;i<25;i++)
    {
    //intA 的条件
    for (int j=25;j<50;j++)
    {
    //intB 的条件
    for (int k=0;k<50;k++)
    {
    if ((2*j - i == 50) &&  (i + j + k) == 50)
    {
    intA = j;
    intB = k;
    intC = i;
    strReturn += "[" + intA + "," + intB + "," + intC + "]<br>";
    }
    }
    }
    intC = intC + 2;
    }
    return strReturn;
    }