你不一定会的宝宝级数学题
在新浪网发现一道数学题。。
思考半天,发现自己还不如宝宝。最后写了几行代码,计算机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
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