代碼改變世界,随手寫了點代碼解決了一個國小生級别的作業題,程式設計要從娃娃抓起
偶然間發現一道國小生級别的作業題,發現很适合寫點代碼來得到結果。于是乎有了本篇文章。
代碼改變世界,程式一秒鐘不到就得出正确結果了。程式設計要從娃娃抓起。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIx0DciV2dmADM30zd-cmbw5CRzUCRzUydaVnQuxEeBRlT4VERNJTUq1EdZpnT5FFVNFTSU1EeVRVT4VERNlXQq1EdVRVT6VEVOlHOT1EeBpWT3lkeMFTR61EeVpWT2NmMiNnSywEd5ITW110MaZHetlVdO1GT3lERNl3YXJGc5kHT20ESjBjUIF2Lc12bj5SYphXa5VWen5WY35iclN3Ztl2Lc9CX6MHc0RHaiojIsJye.png)
題目
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