你不一定会的宝宝级数学题

你不一定会的宝宝级数学题

在新浪网发现一道数学题。。
思考半天,发现自己还不如宝宝。最后写了几行代码,计算机1秒内就算出结果。。科学啊
  关系式:“红花映绿叶×春=叶绿映花红”

  答题要求:请试用“0到9”的6个数字,分别代表“红,花,映,绿,叶以及春”这几个字,并且数字不能重复使用。使得关系式能够成立。
 
把下面代码Ctrl+C/V到VS2008,按下那个绿色小三角,即可看到答案~

 

 1using System;
 2
 3namespace ConsoleApplication1
 4{
 5    class Program
 6    {
 7        static void Main(string[] args)
 8        {
 9            for (int it = 12345; it < 54321; it++)
10            {
11                if (IsSame(it.ToString()))
12                {
13                    for (int m = 2; m < 9; m++)
14                    {
15                        if (IsIn(it, m))
16                        {
17                            if (it.ToString().Equals(Reverse((it * m).ToString())))
18                            {
19                                Console.WriteLine(it);
20                                Console.WriteLine(m);
21                            }

22                        }

23                    }

24                }

25            }

26            Console.ReadKey();
27        }

28        //
29         static string Reverse(string original)
30        {
31            char[] arr = original.ToCharArray();
32            Array.Reverse(arr);
33            return new string(arr);
34        }
 
35        //test whether have the same number
36         static bool IsSame(string aString)
37        {
38            char[] arr=aString.ToCharArray();
39            for (int i = 0; i < aString.Length-2; i++)
40            {
41                if (arr[i] == arr[i + 1])
42                    return false;
43            }

44            return true;
45        }

46        //test whether in the int
47        static bool IsIn(int aInt,int aM)
48        {
49            string theS = aInt.ToString();
50            if(theS.IndexOf(aM.ToString())==-1)
51                return true;
52            else
53                return false;
54        }

55
56    }

57}

58

 

posted @ 2009-09-24 09:13  一修先生  阅读(275)  评论(3编辑  收藏  举报