【原】一道数学题的求解

题目:
将1到9这九个数字分成三个数字不重复(即每个数字只出现一次)的3位数a,b,c,要求第一个3位数,正好是第二个3位数的1/2,是第三个3位数的1/3。求出最小的那个数。

 

解答:

class Program
{
    /// <summary>
    
/// 将1到9这九个数字分成三个数字不重复(即每个数字只出现一次)的3位数a,b,c,
    
/// 要求第一个3位数,正好是第二个3位数的1/2,是第三个3位数的1/3。
    
/// </summary>
    
/// <param name="args"></param>
    static void Main(string[] args)
    {
        for (int t = 100; t < 334; t++)
        {
            int i = t;
            int j = t * 2;
            int k = t * 3;

            if ((j < 1000) && (j > 99) && (k < 1000) && (k > 99))
            {
                StringBuilder sb = new StringBuilder();
                sb.Append(i.ToString());
                sb.Append(j.ToString());
                sb.Append(k.ToString());

                CheckNum(sb.ToString());
            }
        }

        Console.ReadLine();
    }

    private static void CheckNum(string value)
    {
        for (int i = 0; i < value.Length; i++)
        {
            if (value[i] != 0)
            {
                int firstPosition = value.IndexOf(value[i]);
                int lastPosition = value.LastIndexOf(value[i]);
                if (firstPosition == lastPosition)
                {
                    if (i == value.Length - 1)
                    {
                        Console.WriteLine("满足条件的值为:{0}", value.Substring(03));
                    }
                }
                else
                {
                    break;
                }
            }
        }
    }
}

 

posted @ 2011-12-03 21:00  temptation  阅读(260)  评论(0编辑  收藏  举报