程式碼改變世界,隨手寫了點程式碼解決了一個小學生級別的作業題,編程要從娃娃抓起
- 2020 年 11 月 15 日
- 筆記
偶然間發現一道小學生級別的作業題,發現很適合寫點程式碼來得到結果。於是乎有了本篇文章。
程式碼改變世界,程式一秒鐘不到就得出正確結果了。編程要從娃娃抓起。
題目
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //使用計時器記錄所耗時間 6 Stopwatch stopwatch = new Stopwatch(); 7 stopwatch.Start(); 8 9 TryIt(); 10 11 stopwatch.Stop(); 12 13 Console.WriteLine("耗時:" + stopwatch.ElapsedMilliseconds.ToString() + "毫秒"); 14 Console.ReadKey(); 15 16 } 17 18 private static void TryIt() 19 { 20 Console.WriteLine("猜字母代表的數字"); 21 Console.WriteLine("D + (C * 10 + D) + (B * 100 + C * 10 + D) + (A * 1000 + B * 100 + C * 10 + D) == 5678"); 22 23 //定義ABCD四個變數 24 int A = 0; 25 int B = 0; 26 int C = 0; 27 int D = 0; 28 29 //進行4組循環 30 for (int i = 0; i < 10; i++) 31 { 32 A = i; 33 for (int j = 0; j < 10; j++) 34 { 35 B = j; 36 for (int k = 0; k < 10; k++) 37 { 38 C = k; 39 for (int l = 0; l < 10; l++) 40 { 41 D = l; 42 43 //判斷是否滿足等式的條件 44 if (D + (C * 10 + D) + (B * 100 + C * 10 + D) + (A * 1000 + B * 100 + C * 10 + D) == 5678)//加法模式的等式 45 //if ((A*1000)+(2*B*100)+(3*C*10)+4*D==5678)//乘法模式的等式 和加法模式結果一樣 46 { 47 //因ABCD分別代表不同的字母,所以字母各不相同 48 if (A != B && A != C && A != D && B != C && B != D && C != D) 49 { 50 Console.WriteLine("--------------------------"); 51 Console.WriteLine("A=" + A); 52 Console.WriteLine("B=" + B); 53 Console.WriteLine("C=" + C); 54 Console.WriteLine("D=" + D); 55 } 56 } 57 } 58 } 59 } 60 } 61 Console.WriteLine("--------------------------"); 62 Console.WriteLine("結束"); 63 } 64 65 }
C#程式碼實現 使用暴力破解的方法得出各字母的結果,電腦最主要的作用就是用來執行計算任務的。
程式碼運算結果
A=4
B=7
C=9
D=2